birmaga.ru
добавить свой файл

1 2 ... 6 7





7. работа с палитрой компонентов



Палитра компонентов Delphi предназначена для выбора компонентов или других элементов управления (таких, как ActiveX), размещаемых на форме. Палитра компонентов представляет собой многостраничное окно. Для отображения компонентов, расположенных на какой-либо странице, нужно щелкнуть на соответствующей закладке.

Размещение компонента на форме представляет собой двухступенчатый процесс. Сначала выберите в палитре компонентов кнопку, соответствующую нужному компоненту. Затем щелкните на форме. Компонент появится на форме, причем его верхний левый угол будет там, где находился курсор мыши в момент щелчка.

Компонент, размещенный только что на форме, имеет маленькие квадратики по периметру. Эти квадратики называются регуляторами размера компонента. Эти квадратики также показывают то, что компонент активен (когда в окне формы содержится много объектов, только один из них может быть активным, т.е. только один содержит регуляторы размера). Для изменения размера компонента достаточно нажать мышью на одном из квадратиков и перетаскивать его в нужном направлении. Для перемещения компонента по форме необходимо переместить курсор мыши на компонент, нажать левую кнопку и не отпуская ее, перемещать компонент в необходимое место формы.

7.1. Размещение нескольких копий компонента


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

Продемонстрируем это:

  1. Создайте новый проект (File | New Application).


  2. Нажмите и удерживайте клавишу Shift на клавиатуре, затем щелкните на кнопке компонента Label в палитре компонентов.

  3. Щелкните три раза на форме, перемещая каждый раз курсор мыши на новое место.

Щелкните на кнопке со стрелкой в палитре компонентов, чтобы остановить копирование и вернуться в режим разработки формы.

  1. Получили форму с тремя метками.

7.2. Размещение компонента в центре формы


Delphi обеспечивает упрощенный способ размещения компонента в форме. Просто дважды щелкните на нужной кнопке в палитре компонентов, и компонента появиться в форме. При этом он будет центрирован по горизонтали и вертикали. Компоненты, размещенные таким образом, можно перемещать в любое место формы, как и компоненты, размещенные обычным путем.

Теперь дадим краткий обзор стандартных и дополнительных компонент из Палитры Компонент Delphi (страницы Standard и Additional), страницы диалогов (страница Dialogs), системных компонент (страница System).
7.3. Стандартные компоненты
Стандартные компоненты инкапсулируют наиболее распространенные средства управления Windows. К их числу относятся классы: TButton, теdit, TListBox, TMemo, TMainMenu, TScrollBar, TPopupMenu, TCheckBox,TRadio-Button, TRadioGroup, TGroupBox, TPanel И TActionList.

Большинство из перечисленных классов инкапсулирует какое-нибудь сред­ство управления. Класс TMainMenu инкапсулирует главное меню приложения. Двойной щелчок на компоненте MainMenu во время проектирования приводит к актива­ции конструктора меню. С помощью свойств MainMenu можно управлять таки­ми аспектами поведения элементов меню, как, например, их блокировка. Кро­ме того, можно проверять, являются ли они «отмеченными», задавать для них идентификаторы контекстной справки, текст подсказки и т. д. С каждым элементом меню ассоциировано событие Onclick, что позволяет связать с каж­дым выбранным пунктом свой обработчик события.


На первой странице Палитры Компонент размещены, обычно, 14 объектов (рис.7.1), определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно. Набор и порядок компонент на каждой странице являются конфигурируемыми. Так, можно добавить к имеющимся компонентам новые, изменить их количество и порядок. Это можно сделать, вызвав всплывающее меню (нажать правую кнопку мыши, когда указатель над Палитрой).


Рисунок 7.1  Компоненты, расположенные на первой странице

палитры компонентов
Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению. Для более полного изучения данных компонент было бы полезно иметь под рукой компьютер с тем, чтобы посмотреть, как они работают и как ими манипулировать.
Курсор - не компонент, просто пиктограмма для быстрой отмены выбора какого-либо объекта.




TMainMenu позволяет поместить главное меню в программу.

При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага:

1. Помещение TMainMenu на форму;


  1. Вызов Дизайнера Меню через свойство Items в Инспекторе Объектов;

  2. Определение пунктов меню в Дизайнере Меню.


TPopupMenu позволяет создавать всплывающие меню.

Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.

TLabel служит для отображения текста на экране.

Можно изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов. А можно это же легко сделать и во время выполнения программы, написав всего одну строчку кода.




TEdit - стандартный управляющий элемент Windows для ввода.

Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo - иная форма TEdit. Подразумевает работу с большими текстами.

TMemo может переносить слова, сохранять в ClipBoard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц.
TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, по двойному щелчку можно создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом, например, таким:

procedure TForm1.Button1Click(Sender: TObject);

begin

MessageDlg('Are you there?',mtConfirmation,mbYesNoCancel,0);

end;

TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox’ов.

TRadioButton позволяет выбрать только одну опцию из нескольких.

Если опять открыть диалог Options | Project и выбрать страницу Linker Options, то можно видеть, что секции Map file и Link buffer file состоят из наборов RadioButton.
TListBox нужен для показа прокручиваемого списка. Классический пример ListBox’а в среде Windows - выбор файла из

списка в пункте меню File | Open многих приложений. Названия файлов или директорий и находятся в ListBox’е.
TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле

ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен спадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра.
TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).




TRadioGroup используется аналогично TGroupBox, для группировки объектов TRadioButton.

TPanel - управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel,


просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания линейки инструментов и окна статуса.

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

Компонент Panel является контейнером, который может содержать дру­гие компоненты. Свойства панели управляют типом ее обрамления, внешним видом (панель может быть приподнятой, утопленной или плоской), а также шириной рамки. Различные сочетания перечисленных свойств позволяют со­здавать множество разновидностей трехмерных панелей. Это список объектов на первой странице Палитры Компонент. Если нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.
7.4. Страница Additional
На странице Standard представлены управляющие элементы, появившиеся в Windows. На странице Additional (см. рисунок 7.2) размещены объекты, позволяющие создать более красивый пользовательский интерфейс программы.


Список компонент:




TBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку (Glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и др), при выборе которых кнопка принимает соответствующий вид. Кроме того, нажатие кнопки на модальном окне (Form2.ShowModal) приводит к закрытию окна с соответствующим модальным результатом (Form2.ModalResult).

TSpeedButton - кнопка для создания панели быстрого доступа к командам (SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi. Обычно на данную кнопку помещается только картинка (Glyph).


TTabSet - горизонтальные закладки. Обычно используется вместе с TNoteBook для создания многостраничных окон. Название страниц можно задать в свойстве Tabs. Но проще это сделать в программе при создании формы (OnCreate) :

TabSet1.Tabs := Notebook1.Pages;

А для того, чтобы при выборе закладки страницы перелистывались нужно в обработчике события OnClick для TTabSet написать:
Notebook1.PageIndex := TabSet1.TabIndex;

TNoteBook - используется для создания многостраничного диалога, на каждой странице располагается свой набор объектов. Используется совместно с TTabSet.

TTabbedNotebook - многостраничный диалог со встроенными закладками, в данном случае - закладки сверху.

TMaskEdit - аналог TEdit, но с возможностью форматированного ввода. Формат определяется в свойстве EditMask. В редакторе свойств для EditMask есть заготовки некоторых форматов: даты, валюты и т.п. Спец. символы для маски можно посмотреть в Справочнике.

TOutline - используется для представления иерархических отношений связанных данных. Например - дерево директорий.

TStringGrid - служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell.

TDrawGrid - служит для представления данных любого типа в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство CellRect.


TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

TShape - служит для отображения простейших графических объектов на форме: окружность, квадрат и т.п.

TBevel - элемент для рельефного оформления интерфейса.

THeader - элемент оформления для создания заголовков с изменяемыми размерами для таблиц.

TScrollBox - позволяет создать на форме прокручиваемую область с размерами большими, нежели экран. На этой области можно разместить свои объекты.

7.5. Страница Dialogs


На странице Dialogs (рисунок 7.3) представлены компоненты для вызова стандартных диалогов Windows. Внешний вид диалогов зависит от используемой версии Windows. В Windows существуют стандартные диало­говые панели для таких распространенных операций, как, например, откры­тие и сохранение файлов, а также выбор цвета или шрифта. Каждая из них представлена в VCL одним из следующих классов: TOpenDialog, TSaveDialog, TOpenPictureDialog, TSavePictureDialog, TFontDialog, TColorDialog, TPrint-Dialog И TPrinterSetupDialog. Сюда же можно отнести классы TFindDialog и TReplaceDialog. Все компоненты этой группы являются невизуальными, по­скольку у них отсутствует интерфейс времени проектирования. Разумеется, все они становятся видимыми во время выполнения программы.


Рисунок 7.3 – Компоненты, расположенные на странице

Dialogs палитры компонентов
Объекты, представленные на данной странице невидимы во время выполнения и вызов диалогов происходит программно, например:
if OpenDialog1.Execute then Image1.Picture.LoadFromFile(OpenDialog1.FileName);

Диалоги Windows в порядке появления на странице Dialogs:


  • OpenDialog - выбрать файл

  • SaveDialog - сохранить файл

  • FontDialog - настроить шрифт

  • ColorDialog - выбор цвета

  • PrintDialog - печать

  • PrinterSetupDialog - настройка принтера

  • FindDialog - поиск строки

  • ReplaceDialog - поиск с заменой

7.6. Страница System


Страница представляет набор компонент для доступа к некоторым системным сервисам типа таймер, DDE, OLE и т.п.



Рисунок 7.4 – Компоненты, расположенные на странице System

палитры компонентов

TTimer - таймер, событие OnTimer периодически вызывается через промежуток времени, указанный в свойстве Interval. Период времени может составлять от 1 до 65535 мс.

TPaintBox - место для рисования. В обработчики событий, связанных с мышкой передаются относительные координаты мышки в TPaintBox, а не абсолютные в форме.

TFileListBox - специализированный ListBox, в котором отображаются файлы из указанной директории (свойствово Directory). На названия файлов можно наложить маску, для этого служит свойство Mask. Кроме того, в свойстве FileEdit можно указать объект TEdit для редактирования маски.


TDirectoryListBox - специализированный ListBox, в котором отображается структура директорий текущего диска. В св-ве FileList можно указать TFileListBox, который будет автоматически отслеживать переход в другую директорию.

TDriveComboBox - специализированный ComboBox для выбора текущего диска. Имеет свойство DirList, в котором можно указать TDirectoryListBox, который будет отслеживать переход на другой диск.

TFilterComboBox - специализированный ComboBox для выбора маски имени файлов. Список масок определяется в свойстве Filter. В свойстве FileList указывается TFileListBox, на который устанавливается маска.

С помощью последних четырех компонент (TFileListBox, TDirectoryListBox, TDriveComboBox, TFilterComboBox) можно построить свой собственный диалог выбора файла, причем для этого не потребуется написать ни одной строчки кода.

TMediaPlayer - служит для управления мультимедийными устройствами (типа CD-ROM, MIDI и т.п.). Выполнен в виде панели управления с кнопками Play, Stop, Record и др. Для воспроизведения может понадобиться как соответствующее оборудование, так и программное обеспечение. Подключение устройств и установка ПО производится в среде Windows. Например, для воспроизведения видео, записанного в формате AVI, в потребуется установить ПО MicroSoft Video (в Windows 3.0, 3.1, WFW 3.11).

TOLEContainer - контейнер, содержащий OLE объекты. Поддерживается OLE 2.02.

TDDEClientConv,TDDEClientItem, TDDEServerConv, TDDEServerItem - 4 объекта для организации DDE. С помощью этих объектов можно построить приложение как DDE-сервер, так и DDE-клиент.


7.7. Компоненты категории Win32
В VCL существуют классы компонентов, инкапсулирующие многие 32-раз­рядные нестандартные элементы управления Windows. Вот эти классы: TList-View, TTreeView, TTrackBar, TProgressBar, TTabControl, TPageControl, TRichE-dit, TImageList, TStatusBar, TAnimate, TDateTimePicker, TToolBar, TCoolBar И другие. Известная сложность, присущая самой природе некоторых из этих эле­ментов управления, отражается и на представляющих их классах VCL.
7.8. Компоненты для работы с базами данных
В VCL есть значительное число как визуальных, так и невизуальных ком­понентов, предназначенных для работы с базами данных. К числу последних относятся DataSource, Database, Table и Query. Все они инкапсулируют опе­рации базы данных, происходящие «за кулисами».

Классы визуальных компонентов баз данных видимы для пользователя и рассчитаны на непосредственное взаимодействие с ним. Например, компонент DBGrid используется для отображения таблиц в виде сеток. Таким образом, он представляет собой интерфейс между базой данных и пользователем, предназ­наченный для просмотра и редактирования хранящихся на диске таблиц.

Компонент DBNavigator обеспечивает удобный кнопочный интерфейс для передвижения пользователей по таблицам баз данных. Он включает коман­дные кнопки для перемещения на следующую, предыдущую, первую и по­следнюю записи и кнопки для принятия и отмены результатов редактирова­ния.

Еще одна группа привязанных к данным компонентов предназначена для сцепления стандартных средств управления Windows с полями баз данных.

Среди них следует отметить классы TDBText, TDBEdit, TDBListBox, TDBImage И другие.

Обычно ассоциируются с программированием баз данных и компоненты, расположенные на странице QReport палитры компонентов. Они значительно облегчают написание отчетов, особенно в тех случаях, когда источником ин­формации являются таблицы баз данных.

7.9. Компоненты категории Win 3.1

Было бы непоправимой ошибкой пренебрегать этой группой компонентов только из-за названия страницы, на которой они расположены. Здесь можно обнаружить настоящие шедевры, например, TabSet и Note­book. Здесь же находится несколько классов компонентов, с помощью кото­рых можно создавать нестандартные диалоги открытия и сохранения файлов:

TFileListBox, TDirectoryListBox, TDriveComboBox И TFilterComboBox.
7.10. Компоненты категории Internet
В зависимости от версии Delphi (Standard, Professional или Client/Server) в окне палитры компонентов вы можете обнаружить закладку Internet, кото­рая содержит компоненты, предназначенные для программирования в Inter­net — HTML, FTP, SMTP, POPS и HTTP. Здесь же находятся компоненты, предназначенные для общего сетевого программирования посредством интер­фейса Winsock API. Большинство из них — оригинальные компоненты VCL, хотя по крайней мере один, thtml, является элементом управления ActiveX.
7.11. Компоненты категории Sample
Эта страница содержит несколько примеров компонентов VCL. Каждый из них поставляется с исходными файлами, что позволяет изучить все тонкости их работы. Вот эти компоненты: Gauge, ColorButton, SpinButton, SpinEdit, Directory-Outline и Calendar.
7.12. Компоненты категории ActiveX
Страница ActiveX палитры компонентов содержит элементы управления ActiveX, которые можно использовать в своих приложениях. Эти средст­ва включают Chart FX компании Software FX, Inc., элемент управления Graph компании Bits Per Second, Ltd., а также программные продукты Visual Components, Inc., — Visual Speller, Formula One Spreadsheet и Formula One VtChart.



следующая страница >>