GUI Help/Введение в Windows Forms
Содержание |
Windows Forms - фреймворк для работы с формами.
Общая структура программы
Любая программа, использующая Windows Forms может иметь следующий вид:
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
uses
System.Windows.Forms,
System.Drawing;
var
MainForm: System.Windows.Forms.Form;
begin
MainForm := new Form;
Application.Run(MainForm);
end.
MainForm - главная форма.
Основные классы
Windows Forms содержит следующие классы:
- System.Windows.Forms.Button или Button (кнопка)
- System.Windows.Forms.Label или Label (метка)
- System.Windows.Forms.CheckBox или CheckBox (флажок)
- System.Windows.Forms.RadioButton или RadioButton (радио-кнопка)
- System.Windows.Forms.TrackBar или TrackBar (ползунок)
- System.Windows.Forms.ListBox или ListBox (список)
- System.Windows.Forms.ComboBox или ComboBox (выпадающий список)
- System.Windows.Forms.Form или Form (форма)
- System.Windows.Forms.GroupBox или GroupBox (фрейм)
- System.Windows.Forms.SplitContainer или SplitContainer (элемент разделения окна)
- System.Windows.Forms.MenuStrip или MenuStrip (главное меню)
- System.Windows.Forms.ToolStripMenuItem или ToolStripMenuItem (подменю)
Button
System.Windows.Forms.Button - класс кнопки. Синтаксис ее создания:
name := new Button();
name - имя кнопки.
| Свойство | Значение |
|---|---|
| Width | Ширина кнопки. |
| Height | Высота кнопки. |
| Text | Текст на кнопке. |
| BackColor | Цвет фона кнопки. |
| ForeColor | Цвет текста кнопки. |
| Location | Позиция кнопки на форме.
В качестве значения должна быть точка System.Drawing.Point. |
| AutoSize | Будет ли меняться размер кнопки, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на кнопке. |
| Parent | Родительский виджет. |
| Visible | Видна ли кнопка. |
| Событие | Значение |
|---|---|
| Click | Хранит ссылку на процедуру, которая выполниться при нажатии на кнопку.
Для установки его значения используйте вместо := +=. |
Label
System.Windows.Forms.Label - класс метки. Синтаксис ее создания:
name := new Label();
name - имя метки.
| Свойство | Значение |
|---|---|
| Width | Ширина метки. |
| Height | Высота метки. |
| Text | Текст на метки. |
| BackColor | Цвет фона метки. |
| ForeColor | Цвет текста метки. |
| Location | Позиция метки на форме. |
| AutoSize | Будет ли меняться размер метки, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на метке. |
| Parent | Родительский виджет. |
| Visible | Видна ли метка. |
CheckBox
System.Windows.Forms.CheckBox - класс флажка. Синтаксис его создания:
name := new CheckBox();
name - имя флажка.
| Свойство | Значение |
|---|---|
| Width | Ширина флажка. |
| Height | Высота флажка. |
| Text | Текст на флажка. |
| BackColor | Цвет фона флажка. |
| ForeColor | Цвет текста флажка. |
| Location | Позиция флажка форме. |
| AutoSize | Будет ли меняться размер флажка, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на флажка. |
| Parent | Родительский виджет. |
| Visible | Виден ли флажок. |
| Checked | Определяет установлен ли флажок или нет. |
RadioBox
System.Windows.Forms.RadioBox- класс радио-кнопки. Синтаксис ее создания:
name := new RadioBox();
name - имя радио-кнопки.
| Свойство | Значение |
|---|---|
| Width | Ширина радио-кнопки. |
| Height | Высота радио-кнопки. |
| Text | Текст на радио-кнопки. |
| BackColor | Цвет фона радио-кнопки. |
| ForeColor | Цвет текста радио-кнопки. |
| Location | Позиция радио-кнопки форме. |
| AutoSize | Будет ли меняться размер радио-кнопки, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на радио-кнопке. |
| Parent | Родительский виджет. |
| Visible | Видна ли радио-кнопка. |
| Checked | Определяет установлена ли радио-кнопка или нет. |
TrackBar
System.Windows.Forms.TrackBar - класс ползунка. Синтаксис его создания:
name := new TrackBar();
name - имя ползунка.
| Свойство | Значение |
|---|---|
| Width | Ширина ползунка. |
| Height | Ширина ползунка. |
| Location | Позиция ползунка на форме. |
| Parent | Родительский виджет. |
| Visible | Виден ли ползунок. |
| Minimum | Минимальное значение ползунка. |
| Maximum | Максимальное значение ползунка. |
| Value | Текущее значение ползунка. |
| Orientation | Ориентация ползунка.
|
| TickStyle | Контролирует как отображаются деления.
|
| TickFrequency | Расстояние между делениями. |
ListBox
System.Windows.Forms.ListBox- класс списка. Синтаксис его создания:
name := new ListBox();
name - имя списка.
| Свойство | Значение |
|---|---|
| Width | Ширина списка. |
| Height | Высота списка. |
| Location | Позиция списка на форме. |
| Parent | Родительский виджет. |
| Visible | Виден ли список. |
| ItemHeight | Высота элемента списка. |
| Items.Count | Количество элементов списка. |
| Items.Item[k] | K-ый элемент списка. |
| IntegralHeight | Указывает будет ли подгоняться размер списка под размер элементов, чтобы был видны названия всех элементов полностью. |
| Событие | Описание |
|---|---|
| Click | Хранит ссылку на процедуру, которая выполнится при щелчке по списку. |
| SelectedIndexChanged | Хранит ссылку на процедуру, которая выполнится при смене выбранного элемента списка. |
Ниже a - список.
| Процедура | Значение |
|---|---|
| a.Items.Add(t) | Добавляет в список элемент с текстом t. |
| a.Items.Clear | Очищает список. |
ComboBox
System.Windows.Forms.ComboBox - класс выпадающего списка. Для его создания пишите:
name:=new ComboBox();
name - имя выпадающего списка.
| Свойство | Значение |
|---|---|
| Width | Ширина выпадающего списка. |
| Height | Высота выпадающего списка. |
| Parent | Родительский виджет. |
| Visible | Виден ли выпадающий список. |
| Count | Количество элементов в выпадающем списке. |
| SelectedIndex | Индекс выбранного элемента выпадающего списка. |
| SelectedItem | Выбранный элемент выпадающего списка. |
| Items.Item[k] | K-ый элемент выпадающего списка. |
| IntegralHeight | Указывает будет ли подгоняться размер выпадающего списка под размер элементов, чтобы был видны названия всех элементов полностью. |
| Событие | Описание |
|---|---|
| Click | Хранит ссылку на процедуру, которая выполнится при щелчке по выпадающему списку. |
| SelectedIndexChanged | Хранит ссылку на процедуру, которая выполнится при смене выбранного элемента выпадающего списка. |
Ниже a - выпадающий список.
| Функция | Описание |
|---|---|
| a.Items.Add | Добавляет в выпадающий список элемент. |
| a.Items.Clear | Удаляет все элементы выпадающего списка. |
GroupBox
System.Windows.Forms.GroupBox- класс фрейма. Синтаксис его создания:
name := new GroupBox();
name - имя кнопки.
| Свойство | Значение |
|---|---|
| Width | Ширина фрейма. |
| Height | Высота фрейма. |
| Text | Текст на в заголовке фрейма. |
| Location | Позиция фрейма на форме.
В качестве значения должна быть точка System.Drawing.Point. |
| AutoSize | Будет ли меняться размер фрейма, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на кнопке. |
| Parent | Родительский виджет. |
| Visible | Виден ли фрейм. |
SplitContainer
System.Windows.Forms.SplitContainer - класс элемента разделения окна. Синтаксис его создания:
name := new SplitContainer();
name - имя элемента разделения окна.
| Свойство | Значение |
|---|---|
| Width | Ширина элемента разделения окна. |
| Height | Высота элемента разделения окна. |
| Location | Позиция элемента разделения окна на форме.
В качестве значения должна быть точка System.Drawing.Point. |
| AutoSize | Будет ли меняться размер элемента разделения окна, подгоняясь под размер содержимого, или будет отображаться лишь та часть содержимого, умещающаяся на элементе разделения окна. |
| Visible | Виден ли элемент разделения окна. |
| Orientation | Ориентация элемента разделения окна.
|
| Parent | Родительский виджет. |
| Panel1 | Имя виджета, входящего в левую или верхнюю часть элемента разделения окна. |
| Panel2 | Имя виджета, входящего в правую или нижнюю часть элемента разделения окна. |
MenuStrip
System.Windows.Forms.MenuStrip - класс главного меню. Синтаксис его создания:
name := new MenuStrip ();
name - имя главного меню.
| Свойство | Значение |
|---|---|
| BackColor | Цвет фона главного меню. |
| ForeColor | Цвет текста меню. |
| GripStyle | Видим ли объект для перемещения меню, находящийся слева.
|
Ниже a - главное меню.
| Процедура | Значение |
|---|---|
| a.Items.Add(k) | Добавляет подменю k в главное меню. |
ToolStripMenuItem
System.Windows.Forms.ToolStripMenuItem - класс подменю. Синтаксис его создания:
name := new ToolStripMenuItem ();
name - имя подменю.
| Свойство | Значение |
|---|---|
| BackColor | Цвет фона заголовка подменю. |
| ForeColor | Цвет текста заголовка подменю. |
Ниже b - подменю.
| Процедура | Значение |
|---|---|
| b.DropDownItems.Add(t,i,act) | Добавляет пункт в подменю b.
|
Форма
System.Windows.Forms.Form - класс формы. Общий синтаксис ее создания:
name := new Form();
| Свойство | Описане |
|---|---|
| Text | Заголовок формы. |
Ниже a - форма.
| Свойство | Описане |
|---|---|
| a.Controls.Add(виджет) | Добавляет виджет на форму. |
Курсор
Cursor - объект курсора в Windows Forms.
| Свойство | Значение |
|---|---|
| System.Windows.Forms.Cursor.Position.X | Позиция курсора по X. |
| System.Windows.Forms.Cursor.Position.Y | Позиция курсора по Y. |
Обработка событий
Любая процедура, являющаяся обработчиком события должна иметь вид:
procedure p(sender:object; args:System.EventArgs);
begin
//тело процедуры
end;
p - имя процедуры.
Стили
Подключить визуальные стили для более красивого отображения виджетов можно так:
Application.EnableVisualStyles;
Примеры программ
- Вывод сообщения по нажатию кнопки:
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
uses System, System.Windows.Forms;
var
f : Form;
btn : Button;
procedure ButtonClick(sender: object; e: EventArgs);
begin
MessageBox.Show('Hello world!');
end;
begin
f := new Form;
btn := new Button;
btn.Text := 'Click me';
btn.Click += ButtonClick;
f.Controls.Add(btn);
Application.Run(f);
end.