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.