Работа с компонентами в Delphi

Классы в Delphi продуманы очень хорошо. Если посмотреть на структуру всех доступных нам компонентов, то получится громадное дерево. В этой главе мы бу­дем знакомиться с классом формы и ее свойствами. Но прежде чем перейти к это­му, мы рассмотрим иерархию классов, от которых происходит форма:

  • system. TObject — базовый объект для всего;
  • classes.TPersistent — класс реализует возможность назначения себя другому классу;
  • classes.TComponent — класс реализует функционал для не визуального компо­нента;
  • controls .TControi — все визуальные компоненты, которые имеют форму;
  • controls.TwinControi— все компоненты Windows, которые имеют идентифи­катор, происходят от этого класса;
  • Forms. TScroiiingwinControi— базовый класс для компонентов с возможно­стью прокрутки;
  • Forms. TCustomForm — это базовый класс для форм и диалогов.

 

Перед точкой можно увидеть имя модуля, в котором объявлен класс, а после точки имя класса. Классы перечислены в том порядке, в котором они наследуются,

 

т.е. самый первый идет TObject, его свойства и методы наследует TPersistent. Далее идет TComponent, который наследует свойства И методы TPersistent и TObject. Таким образом, функционал класса постепенно наращивается, а каждый последующий класс добавляет к функционалу что-то новое и необходимое для компонентов определенного вида.

 

В приложении 1 приведено описание основных компонентов, являющихся базо­выми для большинства VCL-компонентов. Там же вы найдете основные свойства и методы.

 

Обратите внимание, что все визуальные компоненты происходят от TControi, а значит, все они будут обладать его свойствами. Возможно, что-то еще не очень понятно, но со временем все встанет на свои места. Знакомясь с компонентом, я буду показывать вам иерархию объектов, от которых он происходит.

 

Теперь рассмотрим класс TForm, на основе которого вы будете создавать формы для своего будущего приложения. Вы просто создаете новый класс от TForm, по­мещаете на него свои компоненты, добавляете функционал — и новая форма готова.

 

В Delphi расстановка элементов управления происходит визуально, и все дела­ется одним нажатием клавиши мыши. Даже самый сложный пользовательский ин­терфейс можно сделать в считанные минуты.

 

Как вы уже знаете, если выделить какой-то компонент, то в объектном инспек­торе появятся его свойства и события. Сейчас мы рассмотрим основные свойства и события формы. Большинство из них присутствуют и у компонентов. Поэтому в будущем уже не будем повторяться. Итак, начнем рассмотрение.

  • ActiveControi — указывает на компонент, который должен быть активным по умолчанию.
  • Align — выравнивание компонента.

Любой компонент может быть выровнен по одной из сторон родительского компонента (на поверхности которого он распо­ложен). Этому свойству можно присвоить следующие значения:

  • AiNone — нет выравнивания, как нарисовал, так и будет;
  • AlBottom — выравнивание по нижнему краю;
  • AiLef t — выравнивание по левому краю;
  • AiRight — выравнивание по правому краю;
  • AiTop — выравнивание по верхнему краю.

Компоненты выравниваются относительно формы, а форма выравнивается относительно экрана.

  • AlphaBiend (тип свойства — логический) — свойство формы, которое означает, имеет ли форма прозрачность. Если это свойство равно true, то окно будет про­зрачным. На рис. 6.1 показан пример полупрозрачного окна. Степень прозрач­ности задается через свойство AlphaBiendvaiue.

ВНИМАНИЕ. Прозрачность работает не на всех системах. Пример отлично выполнит­ся в Win2000, ХР и старше, но выдаст ошибку в Win9x, ME, NT.

  • AlphaBiendvaiue (тип свойства — целое число) — степень прозрачности фор­мы. Здесь можно задавать числовое значение степени прозрачности от 0 до 255. Если поставить 0, то форма будет абсолютно прозрачной. 255 означает полную непрозрачность. Чтобы сделать форму полупрозрачной, нужно выставить какое- нибудь промежуточное значение (например, 127).

Работа с компонентами в Delphi

  • Anchors — это свойство есть и у формы, и у компонентов.

Оно показывает, как происходит закрепление к родительскому объекту. Это свойство раскрываю­щееся. Если щелкнуть по квадрату слева от имени свойства, то раскроется спи­сок из четырех дополнительных свойств:

  • akLef t — прикреплять левый край (по умолчанию true);
  • актор — прикреплять верхний край (по умолчанию true);
  • akRight — прикреплять правый край (по умолчанию f lase);
  • akBottom — прикреплять нижний край (по умолчанию false).

По умолчанию прикрепление происходит по левому и верхнему краю. Это значит, что при изменении размера окна расстояние от компонента до левого верхнего угла не изменяется. Если прикрепить компонент к правой кромке окна, то при изменении размера не изменится расстояние до правой кромки.

  • Autoscroii (тип свойства— логический)— указывает на то, будет ли форма автоматически производить скроллинг или нет.
  • Autosize (тип свойства — логический) — если параметр равен true, то форма/ компонент будет автоматически подгонять свой размер в соответствии с содер­жимым.
  •  Bordericons — свойство, определяющее, какие кнопки должны присутствовать у окна (рис. 6.2).

Это свойство раскрывающееся. Если щелкнуть по квадрату слева от имени свойства, то раскроется список из четырех свойств:


  • bisystemMenu— показать меню (иконка слева в строке заголовка окна) и другие кнопки заголовка окна;
  • biMinimize — кнопка минимизации окна;
  • biMaximize — кнопка максимизации окна;
  • biHelp — кнопка помощи.

Работа с компонентами в Delphi

  • Borderstyle — свойство формы. Отвечает за вид оборки окна. Это свойство мо

Для большего эффекта на форму помещена еще и кнопка, которая исчезает при пересечении с оборкой. жет принимать следующие значения:
• bsSizeable— установлено по умолчанию. Стандартное окно с нормальной оборкой, которое может изменять свои размеры (рис. 6.3);
• bsDialog — окно выглядит в виде диалога (рис. 6.4);
• bsNone — окно вообще без оборки. У такого окна нет оборки и меню, просто (квадрат с цветом фона) рабочая область;
• bssingie— на первый взгляд это простое окно, но у него нельзя изменить размеры. Оно имеет фиксированный размер, и изменять его мышкой нельзя;
• bssizeTooiwin— окно с тонкой оборкой. Особенно это заметно в заголовке окна (рис. 6.5);
• bsToolwindow — оно ничем не отличается от предыдущего (рис. 6.6). Единст-венная разница — у этого окна нельзя изменять размеры окна.
  • Borderwidth — ширина оборки окна. Пока что все окна, которые здесь рассмат-ривались, имели ширину оборки, равную нулю. На рис. 6.6 показано окно с оборкой, равной 10. В центре окна растянуто на всю площадь поле для ввода текста, и несмотря на это, в окне по краям видны широкие оборки.

 

Работа с компонентами в Delphi

  • caption — это строковое свойство, которое отвечает за заголовок окна. Мы уже использовали его, когда писали программу "Hello World".

?   clientHeight — это свойство в виде целого числа. Показывает высоту клиент­ской области окна. Высота берется без учета ширины оборки и системного ме­ню, только рабочая область.

?   ciientwidth— это свойство в виде целого числа показывает ширину клиент­ской области окна. Ширина берется без учета ширины оборки и системного ме­ню, только рабочая область.

  • color — цвет клиентской области окна. В списке выбора есть все системные цвета, которые вы можете выбрать. Но если вы хотите использовать какой-то специфичный цвет, можете дважды щелкнуть по этому параметру, и перед вами откроется стандартное окно выбора цвета. В этом окне можно выбрать любой цвет. Но лучше использовать систем­ные цвета.
  • constraints — в этом свойстве содержатся максимальные и минимальные зна­чения размеров окна. Таким образом, можно ограничить размеры окна, в кото­рых оно будет изменяться. Это свойство раскрывающееся и содержит следую­щие параметры:
  • MaxHeight — максимальная высота окна;
  • Maxwidth — максимальная ширина окна;
  • MinHeight — минимальная высота окна;
  • Minwidth — минимальная ширина окна.

Если вы установите эти значения, то окно нельзя будет растянуть больше максимального размера и уменьшить меньше минимального.

  • cti3D — (тип свойства — логический) — указывает показывать окно/компонент в псевдо-ЗО-плоскости или нет. Этот параметр остался еще от Windows 3.1, ко­гда он действительно имел смысл. Сейчас даже если вы отключите 3D, окно сильно не изменится. Поэтому про это свойство можно забыть.
  • cursor — это свойство отвечает за курсор, который будет отображаться при на­ведении указателя мыши на форму/компонент. Здесь могут быть, как показано в табл. 6.1, доступны несколько форм курсоров.

Работа с компонентами в Delphi

  • Docksite— (тип свойства— логический)— указывает, можно ли на форму/ компонент бросать другие компоненты с помощью Drag & Drop. Это свойство создает эффект, который вы могли наблюдать в MS Office, когда панели инст­рументов можно отрывать от формы и прикреплять обратно. Это свойство как раз и разрешает прикреплять компоненты.
  • cursor — это свойство отвечает за курсор, который будет отображаться при на­ведении указателя мыши на форму/компонент. Здесь могут быть, как показано в табл. 6.1, доступны несколько форм курсоров.
  • DragKind — вид перетаскивания объекта при Drag & Drop. Здесь вам доступны два варианта:
  • dkDrag — стандартный Drag & Drop, при котором объект остается на месте. Этот тип удобен при копировании объектов. Вы как бы перетаскиваете ком­понент на то место, где должна быть создана копия, но при этом исходный объект остается на месте;
  • dkDock — перетаскивает сам объект. Этот параметр следует выбрать, если нужно, чтобы компонент мог прикрепляться к другим компонентам или фор­ме. В примере к предыдущему свойству панель имеет именно такое свойство, чтобы могла прикрепиться к форме.
  • DragMode — режим Drag & Drop. Здесь доступны также два варианта:
    • dmManual — ручной режим. При таком режиме вы сами должны запускать перетаскивание объекта;
    • dmAutomatic — режим Drag & Drop. Он будет включаться автоматически, если пользователь начал перетаскивать компонент мышью. При этом не нужно писать дополнительный код, как при ручном режиме.
  • Enabled— (тип свойства— логический)— определяет доступность компонен­та. Если это свойство равно true, то пользователь может работать с этим ком­понентом. Иначе компонент недоступен, окрашен серым цветом, и вы, как поль­зователь, не сможете его использовать (например, рис. 6.7). Если это кнопка, то вы не сможете на нее нажать.

Font — шрифт, используемый при выводе текста на форме. Если вы дважды щелкнете по этой строке, то перед вами появится стандартное окно Windows выбора шрифта.

Работа с компонентами в Delphi 

Formstyle— стиль формы. Здесь доступны для выбора следующие ва­рианты:

  • fsNormai — нормальное окно;
  • fsMDiForm— окно является родительским для MDI-окон. Если вы помните старый Office, то должны знать, что там внутри основного окна можно было перемещать другие окна. Эти окна относятся к классу MDI — мультидоку- ментные окна. Хотя Microsoft не рекомендует использовать MDI-окна, и вро­де как сама отказалась от их использования, но в Windows 2000, ХР и даже в Windows 7 консоль ММС выполнена именно так (рис. 6.8). В некоторых

случаях многодокументная архитектура остается неизменной и будет жить еще долго;

  • fsMDichild— окно является дочерним MDI-окном. fsMDiForm создает глав­ное окно, a fsMDichild создает дочернее, т. е. то окно, которое будет внутри главного;

ВНИМАНИЕ. Если вы попытаетесь создать главное окно с таким параметром, то про­грамма не запустится, и вы увидите ошибку.

  • FsstayOnTop— окно с этим параметром всегда будет находиться поверх ос­тальных.

?   Height (тип свойства — целое число) — высота окна.

?   Hint (тип свойства— строка)— текст подсказки, который будет появляться в строке состояния при наведении указателя мыши на форму/компонент.

?   HorzScroiiBar— параметры горизонтальной полосы прокрутки. Этот параметр пока не будет рассматриваться, потому что если его раскрыть, то там будет столько настроек, что это тема для отдельного разговора.

Работа с компонентами в Delphi

icon — иконка, отображающаяся в заголовке окна. Если дважды щелкнуть по этому свойству, то появится окно загрузки иконки (рис. 6.9). В этом окне есть ряд кнопок:

  • Load — загрузить иконку из файла;
  • save — сохранить иконку в файл;
  • сору— копировать иконку в буфер обмена;
    • Paste — вставить иконку из буфера обмена;
    • clear — очистить текущую иконку.
  • Left (тип свойства — целое число) — левая позиция окна.
  • Menu — меню, которое используется в главном окне. Этот параметр стоит рас­смотреть отдельно.
  • Name — имя формы/компонента. Запомните, что имя, которое вы здесь укажете, будет использоваться в качестве названия объекта. 

 

Если это форма, то в коде будет создан шаблон объекта с таким же именем, но с добавлением в начале имени буквы "Т". Мы с вами уже рассмотрели исходный код, который сгенери­ровал Delphi для пустого проекта. Там объект назывался TForm1. Обратите вни­мание, что здесь, а именно в шаблоне, написано просто Fromi. Если вы попро­буете изменить свойство Name, то и имя объекта в исходном кодсизменится.

 

СОВЕТ. Старайтесь давать формам/компонентам понятные имена. Так легче будет понять, для чего они предназначены. Я думаю, что удобней будет работать с компо­нентом, если у него имя будет ExitButton или NewFileButton, а не просто ButtonlИ Button2.

Работа с компонентами в Delphi

  • PoDefauitPosOnly — Windows сама будет решать только, где расположить окно, а размеры его будут такими, какие установите вы в свойствах;
  • PoDefauitsizeOnly — Windows будет решать только, какими будут размеры окна, а позиция будет такая, какую вы укажете в свойствах;
  • PoDesigned — и размер, и позиция будут такими, какими вы укажете в свойствах;
  • PoDesktopCenter — окно будет располагаться по центру рабочего стола;
  • PoMainFormCenter — окно будет располагаться по центру основной формы;
    • PoOwnerFormCenter — окно будет располагаться по центру окна владельца. То есть того окна, которое вызвало это;
    • PoScreenCenter — окно будет располагаться по центру экрана.
  • showHint (тип свойства — логический) — оно показывает, нужно ли показывать подсказки.
  • Tag — это свойство имеет тип — целое число. Оно ни на что не влияет, и вы можете его использовать в своих целях.
  • тор (тип свойства — целое число). Верхняя позиция окна.
  • Transparentcoior (тип свойства— логический) — определяет, являются ли форма или компонент прозрачными. В отличие от AlphaBlend, эта прозрачность работает всегда.
  • TransparentcoiorValue — значение прозрачного цвета.
  • vertscroiiBar— вертикальная полоса прокрутки. Она имеет те же параметры, что и горизонтальная. Мы рассмотрим ее отдельно.
  • visible (тип свойства— логический) — если оно равно true, то форма/ компонент видимые. Иначе форма/компонент невидимы.
  • width (тип свойства — целое число) — ширина окна.
  • windowstate — состояние окна после запуска.

Здесь доступны следующие па­раметры:

  • wsNormal — окно показывается в нормальном состоянии;
  • wsMaximized — окно показывается максимизированным;
    • wsMinimized — окно показывается минимизированным. На этом обзор свойств формы считаю законченным.
dle

Помоги проекту! Расскажи друзьям об этом сайте: