Delphi. Трюки и эффекты. Александр Чиртик
Чтение книги онлайн.

Читать онлайн книгу Delphi. Трюки и эффекты - Александр Чиртик страница 34

Название: Delphi. Трюки и эффекты

Автор: Александр Чиртик

Издательство:

Жанр: Программы

Серия:

isbn: 978-5-911-80219-6

isbn:

СКАЧАТЬ := 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. Подчеркивание и изменение цвета надписи

      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. Изменение СКАЧАТЬ