Программирование на Delphi и Lazarus




Содержание:
  • Среда разработчика Delphi и Lazarus
  • Структура программы на Delphi
  • Свойства и события объектов. Форма - Windows окно.


  • Среда разработчика Delphi и Lazarus

    Интерфейсы программ Delphi и Lazarus во многом очень похожи, поэтому все примеры (как среда разработчика, так и программный код) будут даваться в системе Delphi (версия 7). Среда Lazarus имеет некоторые недостатки при написании программного кода о которых будет сообщаться по мере изучения предмета.
    Интерфейсные элементы среды разработчика лучше всего рассматривать, если создать новый проект. Для этого в основном меню следует выбрать пункт "File" и в списке выбрать опцию "New Application". Среда разработчика на Delphi должна принять вид, показанный на рисунке.



    Рассмотрим составные элементы интегрированной среды разработчика Delphi. В верхней части экрана расположено окно, содержащее главное меню, панель системных кнопок и панель палитры компонентов.



    Панель палитры компонентов предназначена для выбора и переноса на форму визуальных компонент предназначенных для создания приложения.
    В левой части экрана расположены панели "Object TreeView" (Дерево объектов) и "Object Inspector" (Инспектор объектов). На панели "Object TreeView" отображается список всех объектов задействованных в проекте, а на панели "Object Inspector": закладки Properties - свойства объекта и Events - события объекта.


    При создании нового проекта (меню "File / New Application"), появляется форма - стандартное Windows окно. По умолчанию новая форма имеет заголовок (свойство объекта - caption) Form1. Форма является контейнером для всех остальных компонентов, устанавливаемых на форму, т.е. компоненты могут принимать некоторые свойства присущие Form1.

    Для редактирования кода проекта предназначен текстовый редактор.

    Структура программы на Delphi.


    Известно, что Pascal модульный язык программирования. Сначала создаются модули, содержащие все необходимые процедуры и функции, а затем они подключаются к основной программе директивой USES. Основная программа, традиционно начинается со слов "Program - имя программы". Затем идут описания (если они нужны) переменных, типов, констант и т.д. Сама программа начинается со слова Begin и заканчивается, словом end. (с точкой). Аналогично построена программа и на Delphi. Основная программа содержится в файле с расширением *.DPR. Среда Delphi автоматически создает этот файл при первом запуске проекта. Имя файла задается самим разработчиком. Ниже приводится текст программы, созданный Delphi по умолчанию.
    program Project1;
    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};
    {$R *.RES}
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    Начинающим программистам изменять содержимое этого файла не следует, а среда Delphi сама, автоматически, будет добавлять (или удалять) текст, соответствующий задачам проекта. Наша задача будет заключаться в написании кода модулей, и часть этой работы возьмет на себя Delphi. Коды модулей хранятся в файлах с традиционным расширением *.PAS. При создании нового проекта Delphi, по умолчанию, создает файл с именем UNIT1.PAS. Имя модуля программист может изменить по своему усмотрению. Ниже показано содержимое файла модуля, созданного Delphi при создании нового приложения (с необходимыми комментариями):

    unit Unit1; {Заголовок модуля с именем Unit1}
    interface {Объявление интерфейсного раздела модуля}
    uses {Директива "использовать" готовые модули. Модули перечислены ниже}
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
    type {Объявление раздела типов}
    {Объявляем объект с именем TForm1 типа class, наследник класса TForm}
    TForm1 = class(TForm)
    Private
    { Private declarations }
    {Объявление переменных принадлежащих данному классу. Эти переменные, в дальнейшем будут доступны только этому классу и недоступны другим классам}
    s: string; {Пример объявления переменной s типа String}
    public
    { Public declarations }
    {Объявление переменных принадлежащих данному классу. Эти переменные, в дальнейшем могут использоваться другими классами}
    z: real; {Пример объявления переменной z типа real}
    end; {Конец раздела объявления типов}
    var {Объявление раздела глобальных переменных}
    Form1: TForm1; {Объявлена переменная Form1 типа TForm1}
    implementation {Начало раздела реализации}
    {$R *.DFM} {Подключение файла ресурса формы}
    {В разделе реализации будут располагаться описания процедур и функций}
    end. {Конец модуля}
    При необходимости перед словом implementation, мы можем поместить разделы описания глобальных констант (const) и меток (label). Написание кода программы будет подробно рассмотрено в последующих разделах.

    Свойства и события объектов. Форма - Windows окно.


    В разделе "Среда разработчика Delphi" мы узнали, что основными элементами разработки приложений являются:
    1. Инспектор объектов, в котором сосредоточены свойства и события объектов;
    2. Форма - конструктор приложения;
    3. Редактор кода.
    Первое практическое задание по написанию кода программы на Delphi:
    Важная информация!!! - Если в среде Delphi открыт какой ни будь проект, то его следует закрыть. Для этого следует в главном меню выбрать опцию: "File \ Close All". Теперь создадим новый проект, выбрав в главном меню опцию: "File \ New Application".
    В инспекторе объектов на закладке "Property" следует найти строку Caption. По умолчанию в этой строке написано "Form1". Это свойство является заголовком окна и его можно изменять. Введите вместо слова Form1 строку - "Первая программа на Delphi". Посмотрите на форму, ее заголовок изменился.
    Аналогичным образом можно менять любые свойства формы. Так как свойств у формы много, и большинство из них подходят для других объектов, то ниже приводится список свойств и краткое их описание.
    Свойство Описание
    BorderIcons Тип кнопок отображаемых в заголовке окна. По умолчанию: biSystemMenu - кнопка системного меню;
    • biMinimize - кнопка минимизации окна;
    • biMaximize - кнопка максимизации окна.
      Любой из этих кнопок можно присвоить значение False - недоступна.
    BorderStyle Тип бордюра окна. По умолчанию используется тип bsSizeAble - окно (форма) может изменять свой размер. Также допустимо указание следующих значений:
    • bsDialog - рамка диалоговой панели;
    • bsSingle - тонкая рамка;
    • bsNone - без рамки;
    • bsSizeToolWindow - инструментальная панель Windows с изменяемыми размерами;
    • bsToolWindow - инструментальная панель.
    Caption Заголовок окна (или объекта, например кнопки).
    Color Выбор цвета заливки формы.
    Cursor Тип курсора появляющегося на окне (компоненте).
    Enabled Доступность формы. Для главной формы это свойство всегда должно быть True.
    Font Позволяет выбрать тип, начертание, цвет и размер шрифта для формы (не для заголовка).
    FormStyle Стиль формы. Главное окно программы должно иметь свойство - fsNormal. Если предполагается, что окно должно всегда быть поверх всех окон Windows, то следует установить свойство - fsStayOnTop. Свойства: fsMDIChild и fsMDIForm (окно в окне) использовать не рекомендуется.
    Height Высота окна в пикселях.
    Hint Этикетка. При помещении курсора мыши на окно (или любой другой объект), можно показать этикетку подсказку - ярко-зеленый прямоугольник с пояснительной надписью. В свойстве следует ввести текст который будет отображаться на экране, а свойство ShowHint установить в True.
    Icon Позволяет загрузить иконку приложения из файла (расширение *.ico), эта иконка будет отображаться в системном меню заголовка окна.
    Left Расстояние окна от левой стороны экрана в пикселях.
    Name Имя формы (объекта). Начинающим программистам менять это свойство не рекомендуется, т.к. по имени объекта происходит обращение к нему в программе. Если имя необходимо изменить, то следует вводить его английскими символами и в начале имени не может быть цифра.
    Position
    • poDesigned - форма при запуске приложения будет находиться в том положении на экране, как она находится в конструкторе Delphi;
    • poDefault - форма при запуске может оказаться в любом месте экрана;
    • poScreenCenter -форма при запуске находится в центре экрана.
    ShowHint См. свойство Hint.
    Top Расстояние от верха экрана до окна в пикселях.
    Wisible Видимость. (Обычно это свойство используется другими компонентами или подчиненными окнами). False - компонент скрыт, True - компонент виден.
    Width Ширина формы в пикселях.
    WindowState Состояние окна при запуске приложения:
    • wsNormal - приложение имеет нормальные размеры;
    • wsMaximized - приложение развернуто на весь экран;
    • wsMinimized - приложение свернуто.
    Для того чтобы изменить свойство объекта можно воспользоваться инспектором объектов, но можно некоторые свойства изменять и по ходу выполнения программы. Как это сделать мы узнаем дальше, при рассмотрении событий объектов.
    Запустим нашу первую программу на исполнение. Для этого следует нажать кнопку "RUN" или нажать клавишу F9. Скорее всего Delphi предложит перед первым запуском программы сохранить проект в файле - соглашайтесь. В файловом менеджере создайте свою личную папку для проектов, зайдите в нее и сохраните предложенные Delphi файлы по умолчанию (их два - unit1.pas и project1.dpr). На экране появится наше окно с заголовком "Первая программа на Delphi". Мы, не написав не одной строки кода получили работоспособное приложение. Правда оно пока не выполняет никаких функций, поэтому закройте его известным способом.
    Итак, мы знаем, что у формы (да и у других объектов) есть свойства. Но форма и другие компоненты обладают еще событиями. События происходят всякий раз когда перемещается мышь по объекту, нажата та или иная кнопка и т.д. - операционная система Windows постоянно отслеживает эти события. Наша основная задача при написании программ на Delphi самим описать реакцию того или иного объекта на происходящие события. Как написать код реакции на событие? Нам следует выбрать в инспекторе объектов закладку - Events. Найдите событие onCreate - создание формы. Для того чтобы создать процедуру (все события описываются в процедурах) нам следует поместить курсор мыши на сроку ввода события onCreate и двойным щелчком мыши вызвать редактор кода. В редакторе кода, Delphi сам создал текст заголовка процедуры и выглядит он так:
    procedure TForm1.FormCreate(Sender: TObject);
    begin

    end;
    В разделе типов, в объявлении объекта Form1 появилось имя процедуры:
    Procedure FormCreate(Sender: TObject); - поднимитесь вверх по тексту и проверьте так ли это.
    Вернемся к нашей процедуре создания окна и сами напишем реакцию на создание формы. Изменим свойство - цвет окна. Между словами begin и end напишем следующую строку:
    Form1.Color:= clNavy;
    Запустим программу на исполнение - цвет окна изменился на тёмно- синий.


    Далее создадим еще одно событие - onMouseMove. Это событие отслеживает перемещение курсора мыши на форме. Событие будет заключаться в следующем: при перемещении мыши на форме, в заголовке формы будут отображаться координаты положения мыши. Текст вставляемый в процедуру должен быть таким:
    caption:= 'X:'+IntToStr(x) +' Y:'+ IntToStr(y);
    (IntToStr - функция преобразующая числовой целый тип к строке, т.к. заголовок окна имеет тип String. X и Y - координаты курсора мыши (тип Integer), они передаются в процедуру как параметр).



    Обратите внимание, что мы написали не Form1.caption, а Caption. Все дело в том, что форма является контейнером для всех остальных объектов, и если мы не указали имя объекта, у которого хотим изменить свойство, то имеется в виду, что мы меняем свойства главного объекта - формы. Аналогично мы можем в предыдущей процедуре создания формы, в строке Form1.Color:= clNavy; удалить слово Form1., программа от этого не пострадает. Запустите программу на исполнение и перемещая мышь по форме проверьте, что в заголовке формы отображаются текущие координаты мыши.
    Итак в этом разделе мы узнали: что такое форма, свойства и события объектов и как создать самому проект на Delphi.



       ©Гуков Константин Михайлович 2006 - 2011     Почта: [email protected]