Danke, damit klappt es wunderbar.
Schön! Noch ein Tipp am Rande: Wenn der "Wartungs-Modus" aktiviert ist (bei mir mit VK_LSHIFT beim Programmstart) dann zeige ich noch einen Menüpunkt im Hauptmenü unter "Hilfe" an, mit dem man dann den Modus auch im laufenden Betrieb aus/einschalten kann. Oder erweitern bzw. reduzieren. Das ist extrem praktisch bei Hotline via Fernwartung.
Das Hilfe-Menü bietet sich deswegen an, weil es i.d.R. im gesamten Programm zur Verfügung steht
Hinzu kommt noch: Wenn man wie ich Formulare zur Laufzeit erzeugt (was ja irgendwie Sinn macht) dann kann man je nach Belieben (z.B. im OnCreate-Event) den "Wartungs-Status" aktualisieren, auch ohne dass der globale Menüpunkt im Hilfemenü vorhanden ist, indem man einfach den global gespeicherten KeyBoardState aktualisiert (MyKey_StoreKeyboardState)
Auszug aus der
unit:
Delphi-Quellcode:
interface
uses Windows, Classes;
var
MyKey_KeyboardState : TKeyBoardState;
procedure MyKey_StoreKeyboardState;
function MyKey_KeyPressed(VirtualKeyCode: Byte) : boolean;
implementation
procedure MyKey_StoreKeyboardState;
begin
GetKeyboardState(MyKey_KeyboardState);
end;
function MyKey_KeyPressed(VirtualKeyCode: Byte) : boolean;
begin
Result := ((MyKey_KeyboardState[VirtualKeyCode] and 128) <> 0);
end;
Ich weiß, ist primitiv, aber funzt. SirRufo würde hierfür vermutlich eine Klasse basteln. (@SirRufo: ist jetzt nicht bös gemeint!) Wäre programmiertechnisch auch sinnvoller, keine Frage, aber das ist mir in diesem Fall ehrlich gesagt so was von...