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

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

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

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

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

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

Серия:

isbn: 978-5-911-80219-6

isbn:

СКАЧАТЬ управления

      //Шрифт для элементов управления

      font := CreateFont(16, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET,

      OUT_CHARACTER_PRECIS, CLIP_DEFAULT_PRECIS,

      DEFAULT_QUALITY, DEFAULT_PITCH, 'Courier new');

      //Создание элементов управления

      CreateButton(20, 30, 70, 30, 1001, 'Кнопка 1');

      CreateButton(100, 30, 70, 30, 1002,'Кнопка 2');

      CreateCheck(210, 30, 180, 20, 2001, 'Флажок 1');

      CreateCheck(210, 60, 180, 20, 2001, 'Флажок 2', True);

      CreateOption(210, 100, 180, 20, 3001, 'Переключатель 1', True);

      CreateOption(210, 130, 180, 20, 3002, 'Переключатель 2', False, True);

      CreateOption(210, 160, 180, 20, 3003, 'Переключатель 3', True);

      //Установка шрифта элементов управления

      EnumChildWindows(hMainWnd, Addr(EnumFunc), font);

      //Запуск цикла обработки сообщений

      while (Longint(GetMessage(mess, 0, 0, 0)) <> 0)

      do begin

      TranslateMessage(mess);

      DispatchMessage(mess);

      end;

      DeleteObject(font);

      Собственно за установление шрифта отвечает в приведенном листинге только одна строка:

      EnumChildWindows(hMainWnd, Addr(EnumFunc), font);

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

Листинг 2.37. Реализация функции EnumFunc

      function EnumFunc(wnd: HWND; param: LPARAM):BOOL; stdcall;

      begin

      SendMessage(wnd, WM_SETFONT, WPARAM(param), LPARAM(True));

      EnumFunc := True; //Продолжать перечисление

      end;

      В принципе, имя этой функции и названия параметров могут быть любыми. А вот типы параметров и возвращаемого значения, а также способ вызова функции должны быть именно такими, как в листинге 2.37. Функция должна возвращать True, если нужно продолжать перечисление окон, и False в противном случае. Значение, которое было передано в качестве третьего параметра API-функции EnumChildWindows, передается в функцию обратного вызова. В нашем случае этим параметром является дескриптор шрифта.

      Глава 3

      Мышь и клавиатура

      • Мышь

      • Клавиатура

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

      3.1. Мышь

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

      Координаты и указатель мыши

      Для начала программным путем определим присутствие мыши в системе. Один из способов определения наличия мыши демонстрирует следующий пример (листинг 3.1).

Листинг 3.1. Как узнать, присутствует ли мышь

      function СКАЧАТЬ