- •Среда разработки приложений Delphi
- •Рекомендуемая литература:
- •Сохранение файлов приложения
- •Панель инструментов
- •Палитра компонентов — vcl (Visual Component Library)
- •Vcl представляет собой набор компонентов, разделенных по категориям. Порядок и количество категорий зависит от версии и редакции программного продукта Delphi и настройки опций при инсталляции.
- •Практика
- •Инспектор объектов (Object Inspector)
- •Практика
- •Родители и владельцы
- •Практика
- •Общие свойства компонентов
- •Типы файлов Delphi
Общие свойства компонентов
Align — задает тип выравнивания компонента внутри родительского компонента |
|
alNone |
Выравнивание не используется. Компонент располагается на том месте, куда был помещен во время проектирования формы. |
alTop, alBottom, alLeft, alRight, alClient |
Свойство Align может быть полезно в ряде случаев, когда требуется, чтобы компонент располагался в определенной части формы вне зависимости от ее размера. Во время выполнения программы этим свойством обладают все интерфейсные элементы.
Использование свойства Align позволяет избежать «пустых» мест на форме. При проектировании любого окна приложения (особенно главного) старайтесь не допускать пустых пространств, это свидетельствует о непрофессионализме разработчика. На рисунках изображены две, в общем-то, идентичные формы, только одна из них правильно спроектирована (рис. 3), а другая нет (рис. 4).
Рис.3. RichEdit1.Align:=alClient.
Рис.4. RichEdit1.Align:=alNone.
Положите на форму еще одну панель и установите значение ее свойства Align:=alClient. Все компоненты, помещенные до этой панели, спрячутся под ней. Как уже говорилось, неоконные компоненты типа меток заведомо будут невидимы, поскольку они располагаются в Z-последовательности заведомо ниже любых оконных компонентов, к которым принадлежит панель. А вот видимостью других оконных компонентов — панелей, кнопок, окон редактирования — можно управлять. Это делается командами меню Edit Bring To Front и Edit Sent To Back (либо команды Control Bring To Front и Control Sent To Back во всплывающем меню). Первая из этих команд перемещает выделенный оконный компонент на верх Z-последовательности, и он начинает загораживать все другие оконные компоненты. А вторая команда перемещает выделенный компонент на самый низ Z-последовательности.
Найти любой «пропавший» компонент можно, выбрав его имя в выпадающем списке вверху Инспектора Объектов, либо в окне Дерева Объектов.
Начиная с Delphi 4, оконные компоненты имеют свойство Anchors:
Anchors — задает привязку к родительскому компоненту при изменении размеров последнего. |
|
akTop |
Верхний край компонента привязан к верхнему краю родительского компонента. |
akLeft, akRight, akBottom |
Установите true для каждого из указанных элементов. Запустите приложение и максимизируйте окно, — ваша панель растянется, так как в этом случае выдерживаются расстояния от сторон родительского компонента.
Color — задает цвет фона формы или цвет компонента. |
|
clBlack ... |
Черный цвет. |
clBackground ... |
Текущий цвет фона окна. |
Цвета делятся на две группы: статические —желтый, красный и т.п., и системные — цвета, определяемые текущей схемой Windows (например, clWindow — текущий цвет фона окна).
По умолчанию цвет всех компонентов устанавливается вполне разумно, и менять его стоит лишь при особой необходимости. А применение статических цветов вообще стоит ограничить, чтобы не создать приложение, не гармонирующее с текущей схемой. Но уж если по каким-то соображениям вам надо задать статический цвет, старайтесь использовать базовый набор из 16 цветов. Если вы попытаетесь использовать 256 (или, что еще хуже, 16 миллионов) цветов, это может замедлить работу вашего приложения, или оно будет выглядеть плохо на машине пользователя с 16 цветами. К тому же следует учитывать, как будет выглядеть ваше приложение на монохромном дисплее.
Неудачное цветовое решение может приводить к быстрому утомлению пользователя, работающего с вашим приложением, к рассеиванию его внимания, к частым ошибкам. Надо стремиться использовать ограниченный набор цветов и уделять внимание их правильному сочетанию. Цвет не должен использоваться в качестве основного средства передачи информации. Для этого можно применять различные панели, формы, штриховку и прочие методики выделения областей экрана. Microsoft даже рекомендует разрабатывать приложения сначала в черно-белом варианте, а уже потом добавлять к нему цвет.
Резюме: не злоупотребляйте в приложении яркими цветами. Пестрое приложение — обычно признак дилетантизма разработчика, утомляет пользователя. Как правило, используйте системные цвета, которые пользователь может перестраивать по своему усмотрению. Из статических цветов имеет смысл использовать только черный, белый и красный цвет предупреждения об опасности.
Ctl3D — задает вид компонента |
|
False |
Компонент имеет двумерный вид. |
True |
Компонент имеет трехмерный вид. В этом случае используется библиотека Ctl3D фирмы Microsoft. |
Обычно значение этого свойства никогда не меняют (по умолчанию оно имеет значение true).
Cursor — определяет вид курсора мыши, который будет отображаться, когда курсор находится в активной области компонента |
|
crDefault, crCross, crArrow, … |
|
Изменение изображения указателя мыши при перемещении его в области компонента указывает пользователю на действия, которые он при этом может совершить.
Поменяйте значение этого свойства на любое значение, отличное от данного по умолчанию, и запустите приложение. При попадании указателя мыши на панель, для которой вы установили данное свойство, вид указателя сменится в соответствии с заданным.
Следующие три свойства служат для поддержки протоколов Drag&Drop и Drag&Dock.
Drag&Drop — технология перетаскивания с помощью мыши информации из одного объекта в другой. Использование данного протокола получила широкое распространение в Windows. Например, вы можете перемещать файлы между папками, перемещать сами папки и т.д.
Drag&Dock — технология перетаскивания и встраивания оконных объектов. Например, эта технология применяется в создании панелей инструментов в Word’е.
DragCursor — определяет вид курсора мыши, который будет отображаться, когда в компонент “перетаскивается” другой компонент |
||
Значения этого свойства те же, что и у свойства Cursor. |
||
DragKind — определяет будет ли компонент перетаскиваться по технологии Drag&Drop или по технологии Drag&Dock |
||
dkDrag |
Компонент перетаскивается обычным образом (по технологии Drag&Drop). |
|
dkDock |
Компонент будет перетаскиваться для встраивания (по технологии Drag&Dock). |
|
DragMode — позволяет определить режим поддержки протокола drag–and–drop |
||
DmAutomatic |
Компонент можно перетаскивать, “зацепив” мышью. |
|
DmManual |
Компонент не может быть “перетащен” без вызова метода BeginDrag. |
Enabled — определяет доступность компонента для пользователя. |
|
True |
Компонент реагирует на сообщения от мыши, клавиатуры и таймера. |
False |
Компонент игнорирует эти сообщения. |
Font — определяет атрибуты шрифта |
К атрибутам шрифта относятся, например, CharSet (задает множество символов, например, ANSI_CHARSET, RUSSIAN_CHARSET), Color, Name, Size.
По умолчанию для всех компонентов Delphi задается имя шрифта MS Sans Serif и размер 8. Константа множества символов Charset задается равной DEFAULT_CHARSET, это означает, что шрифт выбирается только по его имени и размеру. Если описанный шрифт недоступен в системе, то Windows заменит его другим шрифтом.
Чаще всего эти установки по умолчанию можно не изменять. Если вы все-таки решите это сделать, то нужно быть очень осторожными. Дело в том, что шрифт, установленный на вашем компьютере, не обязательно должен иметься и на компьютере пользователя. Поэтому использование какого-то экзотического шрифта может привести к тому, что пользователь, запустив ваше приложение на своем компьютере, увидит вместо русского текста абракадабру. Чтобы избежать таких казусов, вам придется прикладывать к своему приложению еще и файлы использованных шрифтов и пояснять пользователю, как он должен установить их на своем компьютере, если они там отсутствуют.
Другой выход — ввести в приложение команду выбора шрифтов пользователем. Это позволит ему выбрать подходящий шрифт из имеющихся в его системе.
Использование шрифтов по умолчанию: System или MS Sans Serif, чаще всего позволяет избежать подобных неприятностей. Однако, если вы используете для надписей русские тексты, то при запуске приложения на компьютере с нерусифицированной Windows возможны неприятности. В этом случае лучшим выходом является англоязычная версия вашего программного продукта.
Height, Width, Left, Top — характеризуют размер и положение компонента |
|
Height, Width |
Вертикальный (горизонтальный) размер компонента или формы в пикселях. |
Left, Top |
Горизонтальная (вертикальная) координата левого верхнего угла интерфейсного элемента относительно формы в пикселях. Для форм это значение указывается относительно экрана. |
С особой осторожностью следует относиться к размерам форм, кнопок, так как неоправданное их уменьшение/увеличение может привести к катастрофическим последствиям при использовании вашего приложения на экране с более высоким/низким разрешением.
Значения свойств Left и Top ведут свой отсчет от левого верхнего угла родительского компонента. Координаты формы — от левого верхнего угла экрана.
HelpContext — задает номер контекста справочной системы |
Этот номер должен быть уникален для каждого компонента. Если компонент активен (находится в фокусе), нажатие клавиши F1 приводит к отображению экрана справочной системы (если такой существует для данного компонента). |
Раз уже мы затронули тему помощи, то следует сказать, что среда разработки Delphi имеет хорошо развитую справочную систему. Если вы захотите получить справку по какому-либо конкретному компоненту, достаточно отметить его указателем мыши и нажать клавишу F1 — вызовется часть справочной системы Delphi, относящаяся к указанному компоненту. Справочная система Delphi содержит большое количество примеров кода, которые можно использовать при написании программ.
Hint — задает текст подсказки |
Текст отображается при обработке события OnHint, происходящего, если курсор находится в области компонента. |
Это свойство начинает работать при установлении значения true свойства ShowHint.
Правила хорошего тона предполагают наличие подобных ярлычков у всех управляющих элементов приложения. Ничто так не раздражает пользователя как кнопка с непонятным рисунком и без ярлычка–подсказки — нажав ее он рискует получить в ответ, в самом крайнем случае, форматирование системного диска.
Задайте какой-либо текст в поле значения Hint, например «Это панель», запустите приложение. При задержке указателя мыши на панели появится ярлычок «Это панель».
Свойства, начинающиеся со слова Parent, служат для унификации свойств родительского и дочерних компонентов.
ParentColor — компонент имеет цвет родительского компонента |
|
True |
Компонент использует цвет родительского компонента (значение свойства Color) . |
False |
Компонент использует значение собственного свойства Color. |
С помощью этого свойства можно добиться того, что все компоненты, расположенные в форме будут иметь единую цветовую гамму. При установке уникального цвета компонента значение свойства ParentColor автоматически изменится на False.
ParentCtl3D — трехмерность |
|
True |
Вид компонента задается значением свойства Ctl3D его владельца. |
False |
Вид компонента задается значением его собственного свойства Ctl3D. |
ParentFont — определение используемого компонента шрифта |
PopupMenu — задание названия локального меню, которое будет отображаться при нажатии правой кнопки мыши |
Локальное меню отображается только в случае, когда свойство AutoPopup имеет значение True или когда вызывается метод Popup . |
Локальное меню могут иметь почти все компоненты. Более того, в зависимости от проводимых действий локальное меню может быть разным для одного и того же компонента. Пункты локального меню не обязательно дублируют пункты главного меню.
TabOrder — задает порядок получения компонентами фокуса при нажатии клавиши Tab |
По умолчанию этот порядок определяется размещением компонентов в форме (первый компонент имеет значение 0, компонент с этим номером получает фокус при отображении формы) . |
Свойства TabOrder может использоваться только совместно со свойством TabStop. |
TabStop — позволяет указать, может компонент получать фокус или нет |
Компонент получает фокус, если значение его свойства TabStop есть True. |
Все компоненты, имеющие значение true свойства TabStop имеют номер, который задает порядок обращения к данному компоненту (он напрямую связан с Z-последовательностью). Порядок обращения к компонентам из этой последовательности можно изменить не только через свойство TabOrder, но и непосредственно редактируя список, содержащий имена данных компонентов. Вызвать этот список можно, например, Edit Tab Order, либо выбрать пункт Tab Order в локальном меню проектируемой формы.
Tag — позволяет “привязать” к любому компоненту значение типа LongInt |
Не имеет никакого предопределенного смысла. Его может использовать программа для хранения некоторого целого числа и обрабатывать (считывать или модифицировать) в процессе выполнения программы. |
Visible — позволяет определить, видим ли компонент на экране |
Значением этого свойства управляют методы Show и Hide. |