Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#1

Seltsames Verhalten von GetAsyncKeyState?

  Alt 21. Okt 2017, 15:50
Edit: Problem wurde gelöst. Ich lasse Get(Async)KeyState einfach weg.

Ich habe ein ListView. sagen wir mal halb gefüllt und mit Report-Ansicht.
Wenn ich im leeren Bereich des LlistViews das mit dem ListView verbundene Popupmenu per Rechtsklick anzeigen lasse und dann mit der linken Maustaste auf ein ListView-Item klicke, wird folgendes nur jedes zweite Mal ausgeführt:
Delphi-Quellcode:
if (GetAsnyKeyState(VK_RBUTTON) = 0) and (GetAsnyKeyState(VK_APPS) = 0) then
 showmessage('X'); // hier werden meine ToolButtons enabled/disabled
Wenn ein Item selektiert ist, schalte ich ToolButtons in meiner Toolbar auf Enabled True. Ist keins selektiert false.
Wenn ich oben genannte Schritte jetzt befolge (PopupMenu anzeigen, dann linksklick auf ein Item), bleiben meine Items auf Enabled false.

In einem anderen Forum lese ich
Zitat:
Probier mal "GetAsyncKeyState", wichtig !! am Anfang Deiner Funktion sollte einmal "GetAsyncKeyState" aufgerufen werden, da diese Funktion in Abhängigkeit vom nächsten/vorherigen Aufruf der Funktion reagiert.
Was hat es denn damit auf sich?

Ich habe es mal getestet und es funktioniert glaube ich. Aber alles doppelt aufrufen? Wieso?
Delphi-Quellcode:
GetAsyncKeyState(VK_RBUTTON);
GetAsyncKeyState(VK_APPS);

if (GetAsyncKeyState(VK_RBUTTON) = 0) and (GetAsyncKeyState(VK_APPS) = 0) then
 showmessage('X'); // hier werden meine ToolButtons enabled/disabled
Führe ich dieses doppelte GetAsyncKeyState aus, bekomme ich meine Items so wie ich sie brauche.

Geändert von Glados (22. Okt 2017 um 15:24 Uhr)
  Mit Zitat antworten Zitat