- •Вкладка win32 Программирование с использованием вкладки Win32 и Dialog
- •Многостраничные панели — компоненты TabControl, PageControl
- •Список изображений — компонент ImageList
- •Компонент RichEdit
- •Компонент Delphi TrackBar
- •Компонент Delphi Progressbar
- •Компонент Delphi UpDown
- •Компонент Delphi HotKey (Горячие клавиши)
- •Компонент Delphi Animate
- •Компонент DataTimePicker
- •Компонент Delphi MonthCalendar
- •Компоненты DateTimePicker, MonthCalendar, Calendar
- •Компонент Delphi TreeView
- •Компонент ListView
- •Компонент Delphi HeaderControl
- •Полоса состояния StatusBar
- •Инструментальные панели — компоненты ToolBar и PageScroller
- •Перестраиваемые панели — компоненты CoolBar и ControlBar
- •Компонент ComboBoxEx
- •Компонент delphi xpManifest
- •Вкладка dialogs Компонент Delphi OpenDialog
- •Компонент Delphi SaveDialog
- •Компонент Delphi OpenPictureDialog
- •Компонент Delphi SavePictureDialog
- •Компонент Delphi FontDialog
- •Компонент Delphi ColorDialog (диалог выбора цвета)
- •Компоненты PrintDialog и PrinterSetupDialog
- •Компонент Delphi FindDialog
- •Компонент Delphi ReplaceDialog
- •Компонент PageSetupDialog
Компонент Delphi UpDown
Компонент Delphi UpDown находится на странице Win32 Палитры компонентов. Его основное предназначение быть счетчиком. Он может уменьшать или увеличивать числовое поле на за заданную целую величину, равную свойству Increment, по умолчанию единице. Диапазон значений задается свойствами Min и Max (возможные значения от -32768 до 32767).
UpDown не имеет поля вывода в котором отображалось бы изменяемое число. В процессе проектирования приложения его связывают с другим оконным элементом управления. Это может быть одно строчный редактор Edit или компонент StaticText. Надпись Label для этих целей использовать нельзя, т.к. это не оконный элемент. Можно использовать даже компонент Memo.
Рисунок 9 – Пример размещения компонентов UpDown
Первая группа - на рисунке связка с компонентом Edit, вторая - StaticText, третья с - Edit, но связь задается программно (в приложении Edit2 и UpDown будут рядом). И в конце связь Memo c UpDown.
Вид счетчика может быть горизонтальным или вертикальным, это зависит от свойства Orientation.
Взаимосвязь счетчика UpDown к ассоциированному компоненту производиться за счет свойства Associate. В программном коде:
UpDown3.Associate:=Edit2;
После установления связи счетчик UpDown автоматически состыковывается со своим компонентом партнером. Так как данная пара не имеет своей надписи, то при необходимости пояснить значение рядом с ним необходимо расположить компонент Label.
Производить изменение в программе можно с помощью мыши, или если свойство ArrowKeys имеет значение TRUE (по умолчанию так оно и есть), клавишами: "стрелка вверх" и "стрелка вниз".
Свойство Position определяет текущую позицию счетчика. При выходе значения счетчика за границы диапазона, значение счетчика не измениться если свойство Wrap будет FALSE. Или если свойство Wrap равно TRUE, при значении превышающим максимальное число - Position становиться равным свойству MIN, аналогично для числа меньше минимального становиться равным свойству MAX.
Значения для использования можно брать как из свойств Text, компонента Edit, так и из свойства Position компонента UpDown. Отличаются эти значения тем, что первое будет текстовым, а второе числовым. Применять исходя из того какой тип нам необходим.
При изменении показания счетчика возникает событие onChanging. Расположим на форме компоненты, как на рисунке 10.
Рисунок 10 – Пример расположения компонентов
Зададим событие onChanging на вкладке Events Инспектора Объектов. Свойство AllowChange - равное TRUE разрешает или равное FALSE запрещает изменять счетчик.
В данном примере оно ассоциируется со значением CheckBox1.Checked
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if CheckBox1.Checked = true then
begin
AllowChange := True;
Label1.Caption := Edit1.Text;
end
else AllowChange := false;
end;
Компонент Delphi HotKey (Горячие клавиши)
Рисунок 11 – Компонент Hotkey
Компонент Delphi HotKey (Горячие клавиши) располагается на странице Win32 Палитры компонентов. С помощью него можно определить комбинацию нажатия клавиш для выполнения заданных действий.
Рисунок 12 – Свойство InvalidKeys
Свойство InvalidKeys определяет "запрещенные" клавиши - это такие клавиши нажатие на которые вместе с "горячей" клавишей не будут учитываться. Если Вас как разработчика использование клавиши ALT и обычной алфавитно-цифровой, необходимо через Инспектор объектов установить в свойстве InvalidKeys значения hcAlt равным FALSE, а остальные должны быть TRUE.
Значения свойства InvalidKeys:
hcNone Обычные алфавитно-цифровые клавиши должны нажиматься вместе с управляющими;
hcShift используется клавиша Shift;
hcCtrl используется клавиша Ctrl;
hcAlt используется клавиша Alt;
hcShiftCtrl используются клавиши Shift + Ctrl;
hcShiftAlt используются клавиши Shift + Alt;
hcCtrlAlt используются клавиши Ctrl + Alt;
hcShiftCtrlAlt используются клавиши Shift + Ctrl + Alt.
Рисунок 13 – Свойство Modifiers
Свойство Modifiers определяет какие управляющие клавиши по умолчанию используются для назначения комбинации клавиш. По виду понятно, что речь идет о клавишах Shift, Ctrl, Alt. Значение hkExt - говорит о том что нет управляющих клавиш.
Рисунок 14 - Пример использования компонента HotKey
Разберем такой пример на форме расположим компоненты меню, Edit, HotKey и label. В меню сделаем один пункт - сообщение. Label будет иметь заголовок - Горячая клавиша. Компонент Edit нужен для того чтобы компонент HotKey, мог быть не в фокусе (иначе придется два раза нажимать горячие клавиши: первый раз задавать "горячие клавиши", второй выполнять команду). Обработчик события пункта меню:
procedure TForm1.N1Click(Sender: TObject);
begin
ShowMessage('Нажатие горячих клавиш');
end;
А события (onCreate) создания формы и onChange (изменения) компонента HotKey будут одинаковыми, они будут задавать "горячие клавиши" для пункта меню:
procedure TForm1.FormCreate(Sender: TObject);
begin
n1.shortCut := HotKey1.HotKey;
end;
procedure TForm1.HotKey1Change(Sender: TObject);
begin
n1.shortCut := HotKey1.HotKey;
end;
