•  

ГлавнаяЛитература по DelphiРазработка приложений в системе Delphi → 2.3. Создание интерфейса приложения

Создано: 22.08.2010 0:43:47 · Исправлено: 22.08.2010 0:43:47 · Прочтений: 6023

Интерфейс приложения определяется компонентами, которые разработчик выбирает из палитры компонентов и помещает на форму. При проектировании интерфейса приложения действует принцип WYSIWYG (What You See Is What You Get) – что видите, то и получите. Так как компонент очень много, то они в палитре распределены по страницам. Для того чтобы поместить компонент на форму, необходимо перейти на нужную страницу, щёлкнуть мышью по выбранному компоненту в палитре, а затем – в нужном месте формы. Другой способ задания компонента предполагает использование общего перечня всех компонент, который открывается командой View|Component List.

После добавления компонента на форму можно изменить его расположение и размеры мышью. Для некоторых компонентов предусмотрено задание положения на переднем или заднем плане. Для размещения на форме нескольких одинаковых компонентов следует сначала нажать клавишу Shift, затем выбрать в палитре компонент, а потом щёлкнуть мышью по форме нужное число раз. Закончить действия с компонентом можно, щёлкнув по кнопке со стрелочкой, либо выбрав другой компонент.

По умолчанию компоненты выравниваются на форме по линиям сетки, шаг сетки равен 8 пикселям, и сетка видна на этапе проектирования. При желании можно изменить шаг сетки или не использовать её вовсе (при необходимости разместить элементы очень плотно). Для задания нужных параметров следует выполнить команду Tools|Environment Options (Средства|Параметры среды) и в открывшемся окне перейти на вкладку Designer. Возможна подгонка расположения компонента с точностью до пикселя с помощью клавиш со стрелками: при нажатой клавише Ctrl происходит смещение компонента, а при нажатой клавише Shift – изменение размеров.

Выравнивать расположение компонентов можно вручную, либо выделив группу компонентов и воспользовавшись командой Edit|Align или командой View|Alignment Palette.

Работать с компонентами можно через буфер. Предварительно нужные компоненты следует выделить, а затем применить команды меню Edit. Другой способ работы с компонентами предлагает окно Object TreeView, которое впервые появилось в Delphi 6. Дерево объектов отображает все компоненты и связи между ними. Используя дерево объектов, очень удобно перемещать компоненты из одного контейнера в другой, так как эта операция выполняется простым перетаскиванием компонента мышью.

Компоненты делятся на визуальные и невизуальные. Визуальные компоненты выглядят одинаково на этапах проектирования и выполнения приложения. К визуальным компонентам относятся форма, кнопки, списки, переключатели и т.п. Невизуальные компоненты либо не видны на этапе выполнения (например таймер), либо их внешний вид отличается от того, который был на этапе дизайна (например меню). При размещении компонента на форме Delphi автоматически вносит изменения в файл модуля и в файл описания формы. В файле модуля в описании класса формы добавляется строчка с описанием типа компонента. Описания всех типов начинаются с буквы Т. Если на форму помещены три кнопки Button и компонент PaintBox, то в объявлении класса формы получим:

type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;

Для помещённых на форму компонентов непосредственно на форме или в окне Инспектора объектов задают значения свойств. Сначала выбирают нужный компонент из списка в верхней части Инспектора объектов или щёлкнув по нему на форме, а затем задают значения свойств. Следует помнить, что некоторые свойства нельзя изменить на этапе дизайна, они доступны только во время выполнения программы. Такие свойства можно изменять программным путём. Свойства же, перечисленные в инспекторе объектов, разрешено изменять как на этапе проектирования, так и программно во время работы приложения (run time).

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

  • нажать кнопку Shift и щёлкнуть мышью на нужных компонентах;
  • нажать на левую кнопку мыши при расположении указателя вне компонентов и протащить мышь по экрану, пересекая нужные компоненты.

Для выделенных компонентов в окне инспектора объектов отображаются одинаковые свойства. Задание свойства относится ко всем выделенным компонентам.

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

Многие свойства компонентов имеют значения по умолчанию, например, Name, Caption, Visible, Color. Свойство Name определяет имя, под которым компонент известен в программе. Свойство Caption – это заголовок. Первоначально Caption получает значение от свойства Name. В дальнейшем эти свойства можно изменить. Строка, определяющая свойство Caption, может отсутствовать, а имя Name должно быть задано обязательно. Например, для кнопки Button задано имя Button1, а свойство Caption, определяющее надпись на кнопке, имеет значение Выполнить. При большом числе однотипных компонент им следует присваивать информативные имена.

Свойство Visible имеет тип ТBoolean, определяет видимость компонента. Если это свойство имеет значение true, то компонент видим. Изменения свойств на этапе проектирования называют статическими. Статические изменения выполняют в окне Инспектора объектов. Изменения в ходе выполнения программы называют динамическими. Для реализации динамического изменения свойства в каком-либо обработчике события задают новое значение свойства с помощью оператора присваивания. Например, чтобы компонент стал невидим во время выполнения программы, надо изменить значение свойства Visible на false:

Label1.Visible:= false;

Или во время выполнения программы можно изменить надпись на кнопке:

Button1.Caption:='Выполнить';

Если на форме выделено несколько компонентов, то в Инспекторе объектов доступны свойства, общие для всех этих компонентов. При этом сделанные изменения относятся ко всем выделенным компонентам.

Для задания свойств в Инспекторе объектов действуют редакторы свойств, которые могут быть нескольких типов:

  • текстовый – свойство вводится и редактируется как строка символов. Delphi интерпретирует строку (в зависимости от свойства) как данные числового или строкового типа;
  • перечисляемый – свойство выбирается из списка. Список раскрывается при щелчке мышью по кнопке со стрелочкой, которая появляется при преходе в область значений свойства (например свойство Visible);
  • множественный – свойство представляет собой комбинацию значений из предлагаемого списка. Слева от названия такого свойства расположен значок +. Список, содержащий возможные значения, открывается двойным щелчком по названию свойства (свойство BorderIcons);
  • объект – свойство является объектом, то есть содержит другие свойства, которые могут редактироваться самостоятельно. Например, свойство Font включает Color, Name, и др. Такое свойство слева от названия имеет символ + и задание значений может выполняться как для множественного свойства. Кроме того, если поместить курсор в область значения свойства, то появится кнопка с точками, щелчок по которой откроет окно для задания свойств. Пользоваться диалоговым окном для редактирования свойств удобнее, чем выбирать их из списка.