Размер шрифта
-
+

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

procedure TForm1.cmbScaleClick(Sender: TObject);

begin

if cmbScale.Caption = 'Изменить масштаб' then

begin

//Начинаем изменение масштаба

StopUpdating();

cmbScale.Caption:= 'Принять масштаб';

txtWidth.Enabled:= True;

end

else

begin

//Заканчиваем изменение масштаба

txtWidth.Enabled:= False;

cmbScale.Caption:= 'Изменить масштаб';

StartUpdating();

end;

end;


Процедуры StartUpdating и StopUpdating скрывают действия, которые необходимо произвести для остановки и возобновления отображения пройденного в текстовом поле указателем мыши расстояния. В данном примере они выглядят достаточно просто (листинг 3.12).

Листинг 3.12. Включение и выключение обновления результатов измерения

procedure TForm1.StartUpdating();

begin

//Включаем обновление показаний в текстовом поле

isUpdating:= True;

end;

procedure TForm1.StopUpdating();

begin

//Отключаем обновление показаний в текстовом поле

isUpdating:= False;

end;


В завершение остается реализовать код инициализации координат указателя мыши при запуске программы и обработчик события Click для кнопки cmbClear (листинг 3.13).

Листинг 3.13. Инициализация при запуске и код сброса счетчика

procedure TForm1.FormCreate(Sender: TObject);

begin

//Инициализируем координаты мыши

GetCursorPos(lastPos);

StartUpdating();

end;

procedure TForm1.cmbClearClick(Sender: TObject);

begin

//Сбрасываем счетчик пройденного расстояния

distance:= 0;

GetCursorPos(lastPos); //Начинаем отсчет с текущей позиции указателя

ShowDistance();

end;


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

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

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

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

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