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

Читать онлайн книгу.

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


Скачать книгу
должны быть действительно веские причины.

      Изменение назначений кнопок мыши

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

      Способ программного изменения функций левой и правой кнопок мыши продемонстрирован в листинге 3.7.

Листинг 3.7. Изменение назначений кнопок мыши

      procedure TForm1.Button1Click(Sender: TObject);

      begin

      //Меняем местами функции левой и правой кнопок мыши

      SwapMouseButton(True);

      end;

      procedure TForm1.Button2Click(Sender: TObject);

      begin

      //Восстанавливаем функции кнопок мыши

      SwapMouseButton(False);

      end;

      В коде листинга 3.7 не учтен тот факт, что инверсия кнопок мыши может быть изначально установлена при запуске программы (например, если за компьютером работает левша). Чтобы точно знать, была ли ранее применена инверсия к кнопкам мыши, можно использовать значение, возвращаемое функцией SwapMouseButton. Если это значение отлично от нуля, то функции кнопок мыши ранее были инвертированы.

      Подсчет расстояния, пройденного указателем мыши

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

      Рис. 3.1. Программа для измерения пробега указателя мыши

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

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

Таблица 3.1. Параметры элементов управления формы, показанной на рис. 3.1

      В коде листинга 3.8 объявляются переменные (члены класса TForm1) и методы, добавленные вручную.

Листинг 3.8. Форма для измерения пробега указателя

      type

      TForm1 = class(TForm)

      ...

      private

      isUp dating: Boolean; //Если равен False, то показания в txtDistance

      //не обновляются

      lastPos: TPoint; //Координаты указателя во время прошлого замера

      distance: Real; //Пройденное расстояние в пикселах

      procedure StartUpdating();

      procedure


Скачать книгу