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

Шрифт
Интервал


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

Листинг 3.1. Определение присутствия в системе мыши

function MousePresent: Boolean;

begin

//С помощью вызова GetSystemMetrics определяем наличие мыши в системе

if GetSystemMetrics(SM_MOUSEPRESENT) <> 0 then

Result:= True

else

Result:= False;

end;


Описанная выше функция MousePresent позволяет проверить наличие мыши. Если мышь подключена к компьютеру и ее можно использовать, то MousePresent возвращает значение True, в противном случае – False.

После того как мышь обнаружена, можно приступать к определению координат ее указателя на экране монитора (листинг 3.2).

Листинг 3.2. Определение координат указателя мыши

procedure MouseForm.Button1Click(Sender: TObject);

var

pt: TPoint;

begin

//Получаем координаты указателя мыши

GetCursorPos(pt);

ShowMessage('('+ IntToStr(pt.X) + ','+ IntToStr(pt.Y) +')');

end;


Здесь для определения координат указателя мыши использовалась API-функция GetCursorPos. Передав в эту функцию переменную pt типа TPoint, вы получите текущие координаты указателя мыши на экране монитора.

В следующем примере демонстрируется, как программным путем скрыть указатель мыши. При нажатии кнопки Button2 указатель будет исчезать, а при нажатии кнопки Button3 (например, с помощью клавиатуры) – появляться (листинг 3.3).

Листинг 3.3. Скрытие указателя мыши

procedure MouseForm.Button2Click(Sender: TObject);

begin

//Прячем указатель

ShowCursor(False);

end;

procedure MouseForm.Button3Click(Sender: TObject);

begin

//Показываем указатель

ShowCursor(True);

end;


В приведенном примере для управления отображением указателя мыши используется функция ShowCursor, которая либо скрывает его (принимая значение False), либо снова показывает (принимая значение True). По причине того, что управление мышью при скрытом указателе невозможно, исходный текст, который управляет видимостью указателя, помещен в обработчики нажатия кнопок формы. Когда указатель скрыт, можно использовать клавишу Tab для выбора и нажатия кнопки формы, используя клавиатуру.

Существуют и другие способы скрыть указатель: рассмотрим пример управления его видимостью посредством установки свойства Cursor компонента: