Оценить:
 Рейтинг: 4.6

Программирование в Delphi. Трюки и эффекты

Год написания книги
2010
Теги
<< 1 ... 37 38 39 40 41 42 >>
На страницу:
41 из 42
Настройки чтения
Размер шрифта
Высота строк
Поля

Вот, собственно, и все, что нужно для работы рассматриваемой программы. Остается лишь уточнить, что способ установки масштаба, используемый в программе, предназначен для таких разрешений мониторов, при которых нет искажений по горизонтали или вертикали. Чаще всего это такие разрешения, при которых размеры изображения по горизонтали и вертикали подчиняются пропорции 4:3 (640 х 480, 800 х 600 и т. д.). При этом такими же пропорциями должен обладать и экран монитора.

Подсвечивание элементов управления

В реальных приложениях часто возникает необходимость изменять внешний вид элементов интерфейса программы в ответ на определенные действия пользователя. Поэтому стоит рассмотреть несложный, но достаточно полезный пример, позволяющий сделать более «живым» интерфейс приложения: изменение внешнего вида элементов управления при наведении на них указателя мыши.

В листинге 3.14 продемонстрирован способ создания статической надписи, похожей на гиперссылку (для большего эффекта для такой надписи можно установить свойство Cursor равным crHandPoint на этапе проектирования формы).

Листинг 3.14. Подчеркивание и изменение цвета надписи

procedure TForm1.lblUnderlineMouseEnter(Sender: TObject);

begin

lblUnderline.Font.Style:= [fsUnderline];

lblUnderline.Font.Color:= RGB(0, 0, 255);

end;

procedure TForm1.lblUnderlineMouseLeave(Sender: TObject);

begin

lblUnderline.Font.Style:= [];

lblUnderline.Font.Color:= RGB(0, 0, 0);

end;

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

Для стандартной кнопки начертание шрифта также можно изменить (листинг 3.15).

Листинг 3.15. Изменение начертания шрифта

procedureTForm1. cmbItalicBoldMouseMove (Sender: TObject;

Shift: TShiftState; X, Y: Integer);

begin

cmbItalicBold.Font.Style:= [fsItalic, fsBold];

end;

procedure TForm1.lblItalicMouseEnter(Sender: TObject);

begin

lblItalic.Font.Style:= [fsItalic];

end

В листинге 3.15 используется обработчик MouseMove для кнопки потому, что обработчики событий MouseEnter и MouseLeave для нее (по крайней мере, с вкладки Standard) не предусмотрены.

Клавиатура

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

Получение информации о клавиатуре

Начнем с небольшого примера, позволяющего определить некоторую информацию о клавиатуре (листинг 3.16). Данный пример основан на использовании API-функции GetKeyboardType.

Листинг 3.16. Получение информации о клавиатуре

procedure TForm1.FormCreate(Sender: TObject);

begin

//Определяем тип клавиатуры

case GetKeyboardType(0) of

1: txt Type.Text:= 'PC/XT или совместимая (83 клавиши)';

2: txt Type.Text xtxt:= 'Olivetti" ICO " (102 клавиши)';

3: txt Type.Text xtxt:= 'PC/AT (84 клавиши) или похожая';

4: txt Type.Text:= 'Расширенная (101 или 102 клавиши)';

5: txt Type.Text:= 'Nokia 1050 или похожая';

6: txt Type.Text:= 'Nokia 9140 или похожая';

7: txt Type.Text:= 'японская';

end;

//Определяем код типа производителя

txtSubtype.Text:= IntToStr(GetKeyboardType(1));

//Определяем количество функциональных клавиш

txtKeys.Text:= IntToStr(GetKeyboardType(2));

end;
<< 1 ... 37 38 39 40 41 42 >>
На страницу:
41 из 42

Другие электронные книги автора Александр Анатольевич Чиртик