1 Компоненты Delphi
Как и любая программная единица, компонент имеет идентификатор (имя), а также характеризуется базовым классом. Класс компонента определяет набор его свойств, методов и событий. Идентификатор присваивается средой Delphi автоматически с использованием имени класса (без начальной буквы T ) и порядкового номера компонента, например, Button1 , Label12 . Как правило, такие имена идентификаторов изменяются на более понятные 1 . Обращение к свойствам и методам компонента, в соответствии с принципом ООП, осуществляется в виде: <идентификатор компонента>. <идентификатор свойства (метода)>, например, Button1 . Caption , где Button1 – идентификатор компонента; Caption – идентификатор свойства. При такой записи обращения к свойству компонента считается, что обращение производится из метода той формы, на которой он расположен. Если же требуется обращение к компоненту, расположенному на другой форме, то идентификатор формы также должен указы- ваться, например, Form1.Button1.Caption . Описание поведения компонента при возникновении того или иного события, заключается в реализации соответствующего метода. Например, поведение компонента Button1 (кнопка), расположенного на форме Form1 класса TForm1 , при нажатии (событие OnClick ) описывается в методе: procedure TForm1.Button1Click(Sender : TObject); begin // Описание реализации реакции на нажатие end; Таким образом, собственно текст программы состоит фактически из набора описаний поведения компонентов при возникновении тех или иных событий. Использование иерархического принципа наследования компонентов позволяет компонентам иметь базовый набор свойств, методов и событий, что значительно облегчает изучение и создание новых компонентов. Большинство компонентов являются прямыми или косвенными наследниками классов TObject , TComponent , TControl , TWinControl . В таблицах 1 и 2 приводится описание наиболее часто используемых свойств, методов и событий этих классов, имеющихся у большинства компонентов. 1 В данных методических указаниях будут использоваться идентификаторы, состоящие из двух частей, разделенных знаком подчеркивания. Первая часть определяет назначение компонента, а вторая дает информацию о его классе, например, Count_E , является компонентом класса TEdit и служит для ввода некоторого количества.идентификатор>
Таблица 1 – Наиболее часто используемые свойства компонентов
Наименование | Тип | Назначение |
Name | TComponentName | Определяет идентификатор компонента. |
(string) | Подчиняется всем правилам, применяе- | |
мым при выборе идентификаторов пере- | ||
менных, констант, типов и т.д. | ||
Align | TAlign | Определяет способ выравнивания компо- |
(перечисляемый) | нента в пределах его визуального вла- | |
дельца (нет, влево, вправо, снизу, сверху, | ||
по всему компоненту) | ||
AutoSize | boolean | Определяет, будет ли компонент автома- |
тически менять свой размер в зависимости | ||
от содержания. | ||
Font | TFont | Определяет вид и параметры шрифта, ис- |
пользуемые для вывода надписей на ком- | ||
поненте. | ||
Caption | TCaption | Как правило, свойство Caption определя- |
Text | (string) | ет поясняющий текст, выводимый на ком- |
поненте, а свойство Text – данные, вво- | ||
димые в компонент. В большинстве слу- | ||
чаев у компонента доступно только одно | ||
из этих свойств. | ||
ClientHeight | integer | Свойства, описывающие максимальные |
ClientWidth | integer | размеры, которые может иметь тот ком- |
ClientOrigin | TPoint | |
понент, для которого данный является ви- | ||
ClientRect | TRect | |
зуальным владельцем (высота, ширина, | ||
позиция верхнего левого угла, координа- | ||
ты области в точках экрана). | ||
Color | TColor | Определяет цвет компонента. |
(тип-диапазон) | ||
Enabled | boolean | Определяет, может ли компонент реаги- |
ровать на нажатие мыши, клавиатуры, | ||
другие события. Даже если это свойство | ||
установлено в False , компонент остается | ||
доступным для программирования. | ||
Height | integer | Высота, левая граница, верхняя граница, |
Left | ширина компонента соответственно (в | |
Top | ||
точках экрана) | ||
Width | ||
Visible | boolean | Определяет, видим ли в данный момент |
компонент, т.е. требуется ли его отобра- | ||
жение. Невидимые компоненты остаются | ||
доступными для программирования. |
Таблица 2 – Наиболее часто используемые методы и события компонентов
Наименование | Назначение |
Методы | |
Create | Конструктор. Вызывается при создании компонента. Для раз- |
личных компонентов имеет разный набор параметров. | |
Destroy | Деструктор. Вызывается для разрушения компонента. Как |
правило, явно не используется. Для разрушения целесообраз- | |
нее использовать метод Free , проверяющий равенство объек- | |
та nil и не позволяющий выполнить повторное разрушение | |
объекта. | |
Free | Вызывается для разрушения компонента. |
Hide | Вызывается для того, чтобы сделать компонент невидимым. |
Show | Вызывается для того, чтобы отобразить невидимый компо- |
нент. | |
SetFocus | Вызывается для передачи компоненту фокуса ввода (курсора). |
События | |
OnClick | Возникает при «нажатии» на компонент. В зависимости от |
компонента, событие может возникнуть по разным причинам. | |
Подробнее событие будет рассмотрено отдельно у каждого | |
компонента. | |
OnResize | Возникает при изменении размера компонента и перед пер- |
вым его отображением. | |
OnMouseDown | Возникает, соответственно, при нажатии, отпускании кнопки |
OnMouseUp | мыши над компонентом, или перемещении мыши над компо- |
OnMouseMove | |
нентом. | |
OnKeyDown | Возникает, соответственно, при нажатии, отпускании или |
OnKeyUp | комбинации нажатия и отпускания клавиши клавиатуры у вы- |
OnKeyPress | |
бранного (сфокусированного) компонента. |
Операции ввода/вывода в компоненты, во многих случаях, осуществляются с использованием свойств, имеющих текстовое представление, поэтому при работе с данными не строкового типа требуется выполнение преобразований данных. Для преобразования данных могут быть использованы стандартные процедуры Pascal Val и Str , а также функции Delphi, некоторые из которых приведены в таблице 3. Таблица 3 – Некоторые функции преобразования
Наименование | Тип результата | Назначение |
StrToInt(s : string) | integer | Перевод строки в целое число |
StrToFloat(s : string) | extended | Перевод строки в вещественное |
число |
1.1 Компонент класса TEdit
1.2 Компонент класса TLabel
Компонент класса TLabel (надпись) расположен в разделе Standard () и предназначен для подписи компонентов, которые не имеют свойства Caption . К основным свойствам компонента можно отнести: Caption . Определяет текст, выводимый в компоненте. При формировании данного свойства можно задать горячую клавишу путем пометки нужного символа знаком «&» (например, «&Ввод» задает горячую клавишу Alt-В). Применение горячих клавиш позволяет организовать быстрый переход к компоненту с помощью клавиатуры; FocusControl . Указывает на компонент, с которым связывается данная надпись. При этом если в свойстве Caption задана горячая клавиша, то она становится клавишей активизации связанного компонента. Компонент класса TLabel может также использоваться для отображения данных, не требующих ручного редактирования. 1 Расположение и внешний вид иконок компонентов приведены для среды Delphi 7. 2 Здесь и далее не указываются свойства, методы и события, единые для большинства компонентов и приведенные в таблицах 1 и 2.
Описание языка
Dеlphi — это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Программы в Delphi создаются на основе современной технологии визуального проектирования которая, в свою очередь, базируется на идеях объектно-ориентированного программирования. Программы в Delphi пишутся на языке ObjectPascal, который является преемником и развитием языка TurboPascal. Как следует из его названия, этот язык также воплотил концепцию объектно-ориентированного программирования.
С помощью Delphi можно создавать различные типы программ — и консольные приложения, и оконные приложения, и приложения для работы с базами данных и Internet. В консольных приложениях для ввода и вывода данных используются процедуры Read, Readln,Write, Writeln. Для выполнения консольного приложения эмулируется режим операционной системы MS DOS.
Оконные приложения — основной вид приложений, используемых в операционных системах семейства Windows. Оконными приложениями является подавляющее большинство прикладных программ, созданных для работы в Windows, например, такие программы , как Проводник, текстовый процессорWord, табличный процессор Excel, графические редакторы и многие другие. Delphi использует для создания оконных приложений специальные компоненты. С их помощью производится ввод и отображение текстовой информации, создание графического интерфейса пользователя и т.п.
Элементы языка. Основные компоненты Delphi
Общие свойства компонентов: иерархия компонентов; положение, размеры и оформление компонентов; события мыши и клавиатуры. Обработка текстовой информации.
Базовая иерархия классов системы.
1. Класс TObject — лежит в основе всей иерархии классов Delphi. Он обладает самыми общими методами, присущими любому объекту, описывает основные принципы поведения объектов во время работы программы (создание, уничтожение, обработка событий и др.).
2. Класс TPersistent — наследник класса TObject, реализует основные методы копирования содержимого объектов.
3. Класс TComponent — наследник класса TPersistent, основной родительский класс для всех классов, описывающих компоненты Delphi. В этот класс входит набор самых общих свойств, имеющихся у каждого компонента, и некоторые полезные методы.
4. Класс TControl — наследник класса TComponent, служит основным классом для всех визуальных элементов управления. Если элемент управления является стандартным элементом Windows, то он базируется еще на одном промежуточном классе TWinControl (наследнике класса TControl).
Компоненты ввода и отображения текстовой информации. Кнопки, индикаторы, управляющие элементы. Для отображения текстовой информации в библиотеке визуальных компонентов Delphi существует множество компонентов.
1. Label (Метка) — надпись. Отображение текста, который не изменяется пользователем. Ее будем использовать для вывода комментариев на форму. Свойства: Caption (задается выводимый текст), Color, Top, Left и т.д.
2. Edit -строка ввода-вывода. Этот компонент можно использовать как для ввода данных — одного числа, одного символа, одной строки, так и для вывода этих же данных. Доступ ко всем данным, находящимся в окне, осуществляется с помощью свойства Edit1.Text. И для получения чисел необходимо использовать функции преобразование типов: StrToInt(Edit1.Text) — преобразование строки в целое число; StrToFloat(Edit1.Text) — преобразование строки в действительное число; IntToStr(n) — преобразование целого числа в строку; IntToFloat(x) — преобразование действительного числа в строку.
3. Memo — отображение, ввод и редактирование многострочных текстов. Основное свойство — Lines.
4. StringGrid — представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактируемые. Для того, чтобы вывести с его помощью числовой массив, необходимо сначала преобразовать числовые данные в строки. Доступ к отдельной ячейке таблицы осуществляется с помощью следующего метода: StringGrid1.Cells[Col,Row]. Количество можно менять по необходимости. Для этого предназначены свойства StringGrid1.ColCount и StringGrid1.RowCount. Их значения можно менять как программно, так и в инспекторе объектов.
5. ListBox — отображение стандартного окна списка Windows, позволяющего из него выбирать пункты.
6. ComboBox — объединяет функции ListBox и Edit.
7. Button — кнопка. Используется для создания кнопок, которыми пользователь выполняет команды в приложении. Все действия, которые должны выполняться при нажатии на кнопку, записываются в процедуре обработки этого события.
8. RadioButton — радиокнопка — предлагает пользователю набор альтернатив, из которого выбирается одна.
9. RadioGroup — служит для создания групп радиокнопок.
Некоторые общие свойства компонентов Свойства компонента так же, как и свойства формы, можно изменить при помощи ObjectInspector. Для того чтобы свойства требуемого компонента были выведены в окне ObjectInspector, нужно выделить этот компонент (щелкнуть мышью на его изображении). 1.Enabled — определяет, активен ли компонент. 2.Height — высота. 3.Hint — всплывающая подсказка. 4.Left — положение компонента относительно левого края формы. 5.Name — имя компонента. 6.Top — отступ от верха формы. 7.Visible — определяет видимость компонента. 8.Width — ширина. 9.Caption — Отображаемый текст