Как сделать приложение в делфи

Добавил пользователь Cypher
Обновлено: 10.09.2024

Релиз Delphi XE5 уже давно состоялся. Так что, советую Вам почитать ещё несколько статей по разработке приложений для Android в Delphi:

И следите за пополнением списка статей про Android на специальной странице блога.

До официального релиза RAD Studio XE5 остается совсем немного времени и, скорее всего, уже в сентябре каждый желающий сможет оценить новые возможности по разработке приложений под Android с использованием Delphi. Пока же каждый желающий может поучаствовать в бета-тестировании или ознакомиться с возможностями новой версии RAD Studio, перейдя по этой ссылке. Как и в случае с Delphi XE4, перед официальным релизом Embarcadero решала дать возможность MVP немного приоткрыть завесу тайны относительно того, что же нас ждет в новой версии RAD Studio. 20 августа 2013 года было дано официальное разрешение на ограниченную публикацию материалов относительно RAD Studio XE5 в блогах, опубликованных на этой странице сайта Embarcadero. Это означает, что до официального релиза я ни слова не скажу о том насколько быстро/медленно, качественно/не качественно работают приложения под Android (даже в комментариях не отвечу), разработанные в Delphi XE5. Более того я ни слова не скажу о каких-либо ошибках, если таковые встретятся на моем пути исследования новой версии Delphi (правила участия в бета-тестировании никто не отменял). Но зато я могу без проблем показывать и рассказывать о новых возможностях/настройках среды, скриншотить приложения, показывать процесс сборки приложений и т.д. И в этой статье я рассмотрю, пусть и кратко, но весь процесс разработки приложения для Android – от выбора шаблона приложения и настройки Android-устройства до загрузки готового приложения на устройство.

Все же не зря в прошлой статье я показал и рассказал о настройках инструментов Android-разработчика. Сегодня они (инструменты) нам пригодятся.

Для начала, пройдем по порядку все шаги для создания простенького Android-приложения в Delphi XE5, попутно заскриншотив все, что можно.

Создание нового проекта в Embracadero RAD Studio 2010 (Delphi 2010)

В данной теме будет рассмотрено:

  • этапы создания и запуска на исполнение Windows-приложения в системе Delphi 2010;
  • основные типы файлов, создающихся системой Delphi 2010 при разработке Windows-приложений.

Содержание

  • Выполнение
    • 1. Запуск системы визуальной разработки приложений Delphi 2010
    • 2. Создание Windows-приложения
    • 3. Сохранение проекта
    • 4. Рабочие файлы приложения
      • 4.1. Файл проекта
      • 4.2. Файл главной формы приложения

      Выполнение

      Создание нового Windows-приложения в Delphi 2010 осуществляется стандартным способом. Ниже описаны шаги по созданию Windows-приложения.

      1. Запуск системы визуальной разработки приложений Delphi 2010

      Во время запуска системы на выполнение будет отображено следующее окно (рисунок 1).

      01_02_00_003_01_

      Рис. 1. Процесс запуска Delphi 2010

      После загрузки, система будет иметь вид, изображенный на рис. 2.

      01_02_00_003_02_

      Рис. 2. Окно Delphi 2010 после запуска

      2. Создание Windows-приложения

      Для создания приложения Windows необходимо в главном меню вызвать следующую последовательность команд (рис. 3):

      01_02_00_003_03_

      Рис. 3. Команда создания Windows-приложения в Delphi

      В результате будет создана главная форма приложения (рис. 4), доступная в режиме проектирования.

      01_02_00_003_04_

      Рис. 4. Главная форма приложения

      Главная форма приложения по умолчанию имеет название Form1 . К ней можно применять различные способы изменения ее вида, поведения и т.д. с помощью панели Object Inspector .

      3. Сохранение проекта

      Первым делом, при разработке новой программы (приложения), есть правильное ее сохранение. Рекомендуется сохранять отдельный проект в отдельном, заранее подготовленном, каталоге.

      Для сохранения проекта необходимо вызвать команду (рис. 5):

      01_02_00_003_05_

      Рис. 5. Вызов команды сохранения всего проекта

      Сохранение проекта в Delphi происходит в два этапа.

      01_02_00_003_06r

      Рис. 6. Окно сохранения модуля главной формы приложения

      Окно сохранения изображено на рис. 7.

      01_02_00_003_07r



      Рис. 7. Сохранение проекта

      4. Рабочие файлы приложения

      После сохранения разрабатываемого проекта система Delphi создает несколько файлов. Опишем основные файлы, которые используются при проектировании приложений.

      4.1. Файл проекта

      Например, если файл проекта был назван myprog1.dpr тогда исполняемый модуль будет иметь название myprog1.exe .

      Если рассмотреть исходный код файла проекта, то он имеет структуру стандартной Паскаль-программы. Листинг файла проекта в данном случае имеет вид:

      В операторных скобках ( begin … end. ) фигурирует четыре вызова, осуществляющих начальную инициализацию приложения, установление и создание главной формы приложения а также запуск приложения.

      4.2. Файл главной формы приложения

      main.pas ,

      то автоматически создастся файл

      main.dfm

      Листинг файла *.dfm , описывающего форму в первоначальном виде следующий:

      Как видно из листинга, новосозданная форма имеет заглавие ‘Form1’ (свойство Caption ), размер по высоте 206 пикселей ( ClientHeight ), размер по ширине 455 пикселей ( ClientWidth ) і т.д.

      5. Запуск приложения

      Запуск приложения осуществляется командой F9 или последовательным вызовом

      После запуска видно, что наше приложение еще не выполняет никакой полезной работы и не содержит никаких элементов управления (компонент). Однако приложение уже может реагировать на команды системного меню (свернуть, развернуть, закрыть), комбинацию клавиш Alt+F4 (закрытие приложения) и вызов системного меню комбинацией клавиш Alt+’пробел’ .

      Подписаться на RSS рассылку

      Первая программа конечно будет очень простой! Для начала выложим на форму простую кнопку. Для этого в панели инструмментов ищем на вкладке Standard компонент Button и щелкаем по нему левой кнопкой мыши. Далее щелкаем той же кнопкой в нужном месте на форме.

      Итак, компонент разместили. Теперь рассмотрим его основные свойства. Если кнопка не выделена, то ее необходимо выделить чтобы инспекторе объектов отображались именно ее свойства.

      Name - название компонента;
      Caption - текст, отображаемый на кнопке;
      Left - позиция по горизонтали;
      Width - ширина кнопки в пикселях;
      Height - высота кнопки в пикселях;
      Cursor - курсор, который будет отображаться при наведении на кнопку;
      Hint - текст подсказки, которая появится при наведении и задерживании указателя мыщи над кнопкой;
      ShowHint - будет ли отображаться подсказка. True - будет отображаться, False - не будет;
      TabStop - Определяет возможность доступа пользователя к кнопке с помощью клавиши Tab.

      В надписях кнопок (свойство Caption) можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи - ставя перед ним символ амперсанта "&". Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа.

      Основное событие кнопки - OnClick, возникающее при щелчке на ней. В обработчике этого события записываются операторы, которые должны выполняться при щелчке пользователя на кнопке.

      Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку. Это свойство целесообразно задавать равным true для кнопок Отменить в различных диалоговых окнах, чтобы можно было выйти из диалога, нажав на эту кнопку или нажав клавишу Esc.

      Свойство Default, если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе. Правда, если в момент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно кнопка в фокусе.

      Вот и все основные свойства. Теперь рассмотрим события. Для этого перейдем на вкладку Events.

      onClick - код который будет выполняться при нажатии кнопки (обратите внимание что нажать кнопку можно не только мышкой, но и клавишей Enter);
      onMouseDown - код который выполнится при нажатии любой кнопки мыши на кнопке, причем не нужно кнопку отпускать;
      onMouseUp - код который выполнится при отпускании любой кнопки мыши;
      onMouseMove - код который выполнится при вождении мышкой по кнопке.

      Обратите внимание что некоторые свойства и события у разных компонентов совпадают.

      Итак, теперь нам нужно чтобы по нажатию на эту кнопку наша программа закрылась. Щелкаем по выложенной кнопке два раза, тем самым создаем процедуру которая выполнится при нажатии кнопки. После данного действия активируется окно редактора кода с уже созданной процедурой, но еще пустой.

      То же самое можно было бы сделать, перейдя на вкладку Events и щелкнув два раза по пустому полю справа от onClick.

      Пишем между Begin и End следующую строку:

      Написанной строчкой мы вызвали процедуру Close у формы, которая закрывает ее. А Form1 - это свойство Name нашей формы.

      Теперь напишем на нашей кнопке текст "Выход", чтобы было понятно что эта кнопка делает. Для этого нужно чтобы кнопка была выделенна. Находим свойство Caption и изменяем его на текст "Выход".

      Ну теперь можно попробовать запустить нашу программу, для этого жмем кнопку F9 или на кнопку рядом с панелью инструментов.

      Если Вы все сделали правильно то программа должна запуститься. А при нажатии на кнопку "Выход" программа закрывается.

      Теперь нужно сохранить результаты, для этого нажимаем кнопку Save All . Желательно сохранять каждый проект в отдельную папку, т.к. проект содержит много файлов. В появившемся окне вводим имя модуля (я не буду менять имя) и жмем кнопку сохранить. Следом появляется еще одно окно, т.к. нажата была кнопка сохранить все. Снова жмем кнопку сохранить. Только что сохраненный файл нужно будет запускать для загрузки нашего проекта, чтобы продолжить работу. А файл который был сохранен первым и есть тот модуль где содержится исходный код нашей программы.

      Теперь если снова откомпилировать программу - Ctrl+F9 (др. словами проверить на ошибки) или запустить - F9, то рядом с исходниками появится EXE файл - это и есть написанная программа. Этот файл можно будет перенести на другой компьютер без исходников - вся необходимая информация хранится в нем.

      Терерь вернемся в Delphi и перейдем в окно редактора кода. Там написанно следующее:

      Разберемся с основными блоками кода:

      unit Unit1 — указание названия модуля;
      interface — секция интерфейса. В ней объявляются процедуры и функции, описываются типы, классы и глобальные переменные;
      uses — секция модулей, в ней указываются те модули которые используются в программе;
      var — зарезервированное слово, означающее что за ним будут идти объявления переменных. В данном месте кода это глобальные переменные;
      implementation — секция определяет процедуры и функции, которые объявлены в секции интерфейса;
      end. — указание окончания программы. Любой текст находящийся после этого слова не читается. End обязательно должен быть с точкой;

      Пишем программу дальше

      Итак, теперь научимся обращаться к свойствам компонентов из кода программы. Выложим на форму еще одну кнопку. И по клику на нее будем писать следующий код (для тех кто не уловил как это делается - щелкнем по выложенной кнопке два раза):

      Теперь после нажатия на вторую кнопку первая сместится вправо на 10 пикселей. Жмем F9 и проверяем.

      Почему мы написали именно так? Многие просто не понимают почему в событиях связанных с Button2 изменяет свое положение кнопка Button1. Постараюсь объяснить доступно. Чтобы обратиться к свойствам любого компонента нужно написать имя этого компонента — в данном случае это Button1. Далее через символ "." осуществляется доступ к его свойствам и методам. Для удобства работы в Delphi после ввода точки было сделанно появление меню в котором отображаются все доступные свойства и методы объекта.

      Рис 1. Меню выбора свойств объекта

      Через точку мы и написали свойство Left, т.е. координаты по горизонтали от левой границы родителя, в данном случае формы. Мы свойству Left присваиваем координату на 10 пикселей больше чем она сама. Свойство Left можно найти в инспекторе объектов.

      Таким образом можно обратиться к любому свойству которое видно в инспекторе объектов (например поменять Caption кнопки, шинину, высоту, и т. д.)

      В среде Delphi программист работает с проектом – набором файлов, из которых Delphi создает приложение. Один проект соответствует одному приложению. Ряд файлов проекта Delphi формирует и модифицирует автоматически. Программист может добавлять в проект и собственные файлы (Pascal-модули, графические файлы, DLL–библиотеки, библиотеки компонент, ресурсы и т.д.).

      В состав проекта обязательно входят следующие элементы [3, 4, 5]:

      · основной файл проекта, имеющий расширение .DPR (Delphi PRoject). В проекте может существовать только один файл с таким расширением. Это небольшой текстовый файл на языке Object Pascal, который содержит ссылки на все формы проекта и инициализирует приложение;

      · файлы всех форм проекта. Для каждой формы формируется пара одноименных файлов – файл Pascal-модуля с обычным расширением .PAS и файл ресурсов формы с расширением .DFM (Delphi ForM). Любая форма проекта всегда должна иметь свою пару файлов модуль-ресурс. Обратное не обязательно, т.е. проект может включать в себя модули и файлы ресурсов не относящиеся ни к одной из форм приложения;

      · файл ресурсов приложения (*.RES). В нем содержатся ресурсы приложения, не вошедшие в формы;

      файл опций проекта (*.DOF – Delphi Options File). В этом файле сохраняются значения директив и опций компилятора, настроек компоновщика, названия рабочих каталогов, параметры командной строки запуска приложения.

      Пример программы

      Перед началом работы над очередным проектом, прежде всего, следует создать для файлов будущего проекта отдельную папку (директорию). Это правило необходимо соблюдать всегда, иначе очень скоро файлы различных проектов так “перемешаются” в одном директории, что рассортировать их по проектам станет довольно сложно. Будем считать, в дальнейшем, что такая папка создана, назовем ее PO_EVM, это будет текущая папка проекта.

      Запускаем Delphi. Если загрузка прошла успешно, то на экране монитора мы увидим то, что представлено на рис.1. В строке заголовка главного окна Delphi присутствует надпись Delphi 3 – Project1 . Это название нашего проекта и программы. В строке заголовка окна формы приложения написано Form1 . Если нажать клавишу F12 или щелкнуть мышью на кнопку Toggle
      Form/Unit (панель быстрого доступа) или выбрать пункт меню View/Toggle Form/Unit, то окно редактора кода переместится на передний план и мы увидим содержимое страницы Unit1 редактора, в которой представлен Pascal-код модуля Unit1 . Добавим в окно редактора кода еще одну страницу, в которой расположится код основного программы проекта. Для этого выберем пункт меню View/Project Source . Ниже представлено содержимое двух страниц редактора кода: Pascal-код главной программы и Pascal-код модуля главной формы проекта, соответственно.

      Сохраним файлы проекта в созданном директории PO_EVM. Для этого нажмем кнопку Save all на панели быстрого доступа или выберем пункт меню File/Save Project As… . В появившемся стандартном Windows-окне сохранения файлов выберем папку PO_EVM и последовательно сохраним Pascal-код модуля формы и Pascal-код программы в файлах с именами IDE_Un1.pas и IDE_Pr.dpr соответственно.

      IDE_Un1 in ‘IDE_Un1.pas’ ;

      Windows, Messages, SysUtils,

      lasses, Graphics, Controls,

      Если сейчас посмотреть содержимое папки PO_EVM, то в ней будут находиться следующие файлы проекта: IDE_Pr.dof – файл опций проекта; IDE_Pr.dpr – основной файл проекта; IDE_Pr.res – файл ресурсов проекта; IDE_Un1.pas – файл Pascal-кода модуля формы; IDE_Un1.dfm – файл ресурсов формы.

      Желательно изменить некоторые стандартные настройки среды, в частности для того, чтобы на экране отображался процесс компиляции и компоновки программы, а также, чтобы перед каждым запуском программы на исполнение автоматически сохранялись все модифицированные файлы проекта. Сделать это можно в диалоговом окне Environment Options… , которое можно вызвать из меню Tools/ Environment Options… . На страничке Preferences в разделе Desktop contens установить переключатель в положение Desktop only, в разделе Autosave options установить выключатели в пунктах Editor files и Desktop, а в разделе Compiling and Running установить выключатель Show compiler progress .

      Простейшая программа в Delphi уже готова к исполнению. Нажав кнопку Run на панели быстрого доступа или клавишу F9, можно наблюдать процессы компиляции и компоновки программы, после которых начнет исполняться наша программа. Визуально программа представлена на экране пустым окном со стандартной Windows-строкой заголовка, содержащей пиктограмму приложения, наименование формы и три кнопки управления окном. Выход из программы и возврат в среду Delphi осуществляется стандартным для Windows способом – комбинацией клавиш Alt-F4 или нажатием на кнопку закрытия приложения. Если сейчас просмотреть содержимое папки файлов проекта PO_EVM, то можно заметить, что в ней появились еще два файла: IDE_Un1.dcu и IDE_Pr.exe – откомпилированный файл модуля формы и загрузочный (исполняемый) файл приложения. Файл IDE_Pr.exe можно запускать на исполнение автономно, т.е. вне среды Delphi. После выхода из среды Delphi, в папке образуется еще один файл IDE_Pr.dsk – файл с индивидуальными пользовательскими настройками среды.

      Приведем примерную последовательность действий программиста, который создает программу “Калькулятор +/-“. Это, с позволения сказать, приложение предназначено для выполнения операций сложения и вычитания вещественных чисел. При запуске окно (форма) программы должно выглядеть как на рис. 7.

      На форме расположены три строки ввода/вывода (компоненты типа TEdit) для ввода двух операндов и вывода результата; пять кнопок (четыре компоненты типа TButton и одна – TBitBtn) – сброс, указание типа и результата операции (C, +, – , =), выхода из программы (Close); три надписи для обозначения операндов и результата (компоненты типа TLabel); разделительный интерфейсный элемент для выделения поля вывода результат счета (компонент TBevel).

      В исходном состоянии, после запуска Delphi и сохранении двух файлов проекта с указанными именами, мы имеем пустую форму. Далее порядок построения интерфейсной части приложения был следующим (результаты ваших действий можно сверять с расположением компонентов на рис. 7):

      1. Свойство формы Caption в инспекторе объектов изменяем со значения Form1 на строковое значение Калькулятор +/- . Изменение значения названия формы сразу заметно в строке заголовка формы;

      2. На странице Standard палитры компонентов щелкаем левой кнопкой мыши на изображении компонента Label, затем перемещаем указатель мыши в район левого верхнего угла формы и щелкаем левой кнопкой там. В этом месте на форме появится изображение компонента Label с надписью Label1. Изображение компонента выделяется по периметру шестью черными квадратиками – маркерами изменения размеров (размерные маркеры). Выделение маркерами означает, что данный компонент сейчас является активным. С помощью мыши стандартными Windows-приемами можно изменять размеры компонента, перемещать его по форме. Для активизации другого компонента формы необходимо просто щелкнуть на нем левой кнопкой мыши. Содержимое закладок инспектора объектов всегда соответствует активному компоненту, при активизации другого компонента, состав полей инспектора объектов автоматически меняется. Изменим свойство Caption компонента Label со значения Label1 на значение 1-ый операнд . Свойству Name этого компонента придадим значение lb_1 .

      3. Действуя аналогично, расположим второй компонент-метку немного ниже первой, задав, соответственно, свойствам Caption и Name значения 2-ой операнд и lb_2 .

      4. На той же странице Standard палитры компонентов выберем компонент Edit (строка редактирования) и поместим его на форме правее первой метки. Свойству Name присвоим значение ed_1 , а свойство Text сделаем пустым.

      5. Действуя аналогично, расположим вторую строку редактирования правее второй метки, задав, соответственно, свойствам Text и Name значения пустой строки и ed_2 .

      6. На странице Additional палитры компонентов выберем компонент Bevel и поместим его так, чтобы он изображал “итоговую” черту под второй меткой и второй строкой ввода. Свойство Name, равное Bevel1 , изменять не будем.

      7. Под компонентом Bevel разместим еще одну пару “метка – строка ввода” для вывода результата вычислений. Свойствам Name присвоим значения lb_3 и ed_3 , свойству lb_3.Caption – значение Результат , а свойству Text компонента ed_3 – значение пустой строки.

      8. Поместим еще одну метку для изображения текущей арифметической операции: (?, +, –) — операция не определена, операция сложения, операция вычитания. Расположим эту метку между двумя первыми метками, ближе к левым границам компонентов для ввода операндов (см. рис.7). Свойству Name присвоим значение lb_oper, а свойству Caption – значение ? . Установим также подсвойство Size в свойстве Font для этой метки, равным 14;

      clip_image010

      9. Подравняем компоненты. Стандартным Windows-приемом выделим компоненты – метки. Для этого, держа нажатой кнопку Shift, последовательно щелкая левой кнопкой мыши по компонентам-меткам, активизируем одновременно все три метки. Если теперь щелкнуть правой кнопкой мыши, то по законам Windows 95 должно появиться контекстное меню – оно и появляется. Выберем в нем пункт A lign… (выравнивание). Теперь на экране мы видим окно Alignment. Выберем на панели Horizontal пункт Left sides и нажмем кнопку Ok . В результате этого все три компонента – метки выровняются по левой границе самой левой компоненты. Аналогичными действиями подравняем и все три строки редактирования. Строки редактирования можно выровнять и по размерам, выделив их одновременно все три и выбрав в контекстном меню пункт Size… . “Тонкую” работу по изменению размеров и перемещению компонент выполняют обычно не мышью, а клавишами управления курсором при нажатых, соответственно, сдвиговых клавишах Shift и Ctrl . Эти действия можно производить не только с одним компонентом, но и с выделенной группой компонентов.

      10. Теперь расставим на форме управляющие кнопки. Их у нас пять (см. рис.7). Первые четыре кнопки – кнопка сброса, кнопки операций (сложение (+) и вычитание (–) ) и кнопка результата. Пятая кнопка – кнопка завершения работы программы. На странице Standard палитры компонентов выберем компонент Button (кнопка) и поместим его правее первой строки редактирования. Свойствам Caption и Name кнопки присвоим соответственно значения C и btn_Clear . Аналогичным образом располагаем и три другие кнопки на форме, назвав (свойство Name) их btn_sum, btn_sub и btn_rez , с наименованиями (свойство Caption) + , – и = (см. рис.7). Выделив кнопки в группу, дважды щелкнем на составном свойстве Font в инспекторе объектов. В поле Size свойства Font зададим размер шрифта 14 пунктов. После установки этого значения размер символов на кнопках увеличится.

      11. Пятая кнопка – кнопка завершения программы – выбрана со страницы Additional. Это первый по порядку компонент на этой странице – кнопка типа BitBtn (командная кнопка с надписью и пиктограммой). Расположив кнопку на показано на рис.7, выберем из списка значений свойства Kind значение bkClose . Этим выбором полностью определяются визуальные атрибуты и функциональное назначение кнопки.

      12. В заключение процесса построения интерфейсной части программы уменьшим форму до размеров, приведенных на рис.7.

      На этом заканчивается первый этап создания приложения – построения интерфейса. Необходимо отметить, что на любом этапе построения интерфейса можно в любой момент запустить программу на исполнение. В процессе выполнения вышеописанных шагов мы не написали ни одной строчки, ни одного Pascal-оператора. Все записи в тексте модуля формы приложения Delphi делает сама. К этому моменту в интерфейсной части модуля формы произошли изменения – добавились описания компонентов, помещенных нами в форму и стандартные модули Delphi – Buttons, StdCtrls, ExtCtrls.

      Читайте также: