Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Мышь за пределами формы

Автор: -Роман- 16.12.2007 18:43

Как определить нажатие кнопки мыши за пределами формы?

Автор: andriano 16.12.2007 19:34

Насколько мне известно, непосредственно это не делается. Разве что "подложить" под форму окно, распахнутое на весь экран, и получать сообщения уже от этого окна.

Автор: -Роман- 16.12.2007 20:08

Кажется сам разобрался.

Создаём Timer1, В OnTimer пишем:

procedure TForm1.Timer1Timer(Sender: TObject);
var
MyMouse: TMouse;
MyPosX, MyPosY: integer;
sm:smallint;
begin
MyPosX := MyMouse.CursorPos.X;
MyPosY := MyMouse.CursorPos.Y;
Label8.Caption := IntToStr(MyPosX);
Label9.Caption := IntToStr(MyPosY);
sm := GetKeyState(VK_LBUTTON);
if OldZn <> sm then
begin
Label10.Caption := Label8.Caption;
Label11.Caption := Label9.Caption;
end;
OldZn:= sm;
end;

Не забываем создать глобальную OldZn: smallint;