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

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

СКАЧАТЬ style="font-size:15px;">      //Включаем обновление показаний в текстовом поле

      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. Изменение начертания шрифта

      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) не предусмотрены.

СКАЧАТЬ