Дізнатися, чи натиснута кнопка на миші

Як опитати стан кнопок миші в подію OnMouseMove?

F1 + останній абзац

procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState; X,
# XA0; Y: Integer);
begin
if (GetKeyState (VK_LBUTTON) AND 128) = 128
then Caption: = "Кнопка натиснута
else Caption: = "Кнопка не було натиснуто";
end;

Те І.Павел: велике спасибі!

якщо кнопку натиснули до входу курсору на контрол, тоді маусмува взагалі не буде.

а якщо кнопка натиснута над контролом, то досить шіфтстейта щоб зрозуміти які кнопки затиснуті.

І ще, "128" писати не красиво, бо не відображається булева сутність.


> Якщо кнопку натиснули до входу курсору на контрол, тоді маусмува
> Взагалі не буде.

Це начебто тільки для лівої кнопки, немає?

в будь-якому випадку шіфістейта досить

const
b128 = 128;

if GetAsyncKeyState (VK_LBUTTON) and $ 8000. <> 0
# XA0; then Caption: = "Кнопка натиснута"
# XA0; else Caption: = "Кнопка відтиснуті";


> В будь-якому випадку шіфістейта досить

його досить тільки в тому випадку, якщо він є (наприклад, був переданий в якості аргументу).


> Його досить тільки в тому випадку, якщо він є

Якщо ти смикаєш обробник події безпосередньо, то це, м'яко кажучи, теж говорить про те, що слід подумати про архітектуру.

Shiftstate - це теж варіант вирішення, але тому що його озвучили в [1], я вирішив запропонувати альтернативу.


> Про високі матерії і ідеальних формах це вже в дусі Васисуалія
> Лоханкіна.

взагалі-то, йому досить було трьох неідеальноформових і невисокоматеріальних: курка, світло в туалеті і Варвара.

а чому 128 (0х80). хіба не першими йдуть мишачі?

> А чому 128 (0х80). хіба не першими йдуть мишачі?

Молодший біт визначає "переключена" чи кнопка (наприклад, чи горить CapsLock), а старший - натиснута кнопка:

If the high-order bit is 1, the key is down; otherwise, it is up.
If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on.
The key is off and untoggled if the low-order bit is 0.
A toggle key "s indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.

Пам'ять: 0.76 MB
Час: 0.056 c

Схожі статті