Mit F1 Tastendruck Hilfe aufrufen!
-
Hallo liebe Kollegen,
ich stehe vor einem Problem!
Ich möchte mit dem Tastendruck auf F1 die Hilfedatei öffnen wie wir alle gewönlich kennen. Der folgender Aufruf für den Formular "HauptF" funktioniert nicht:oid __fastcall THauptF::FormKeyPress(TObject *Sender, char &Key) { if(Key == VK_F1) ShellExecute(HauptF->Handle, "open", "ESB.chm", NULL, NULL, SW_SHOWNORMAL); }
Wenn ich den Ereignis auf einen Button umlege funktioniert der Aufruf einwandfrei, aber nur dann wenn diese Button einen Focus hat. Ich möchte während das Programm läuft die Hilfe mit F1 in jede Lage aufrufen können.
Warscheinlich geht es anders aber ich kenne den Weg nicht!
Hat jemand ein Tip?
-
Hallo
Key-Events werden normalerweise nur an das Control gesendet das grad den Fokus hat. Damit das Form trotzdem alle Key-Events bekommt must du die Eigenschaft KeyPreview auf true setzen.
bis bald
akari
-
Schon klar,
KeyPreview ist auf true, es hilft aber nicht weiter!
-
Vielleicht hilft dir eine TActionList weiter.
-
Problem hat sich erledigt!
Der Aufruf muss in das OnKeyDown Ereignis:
void __fastcall THauptF::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key == VK_F1) ShellExecute(HauptF->Handle, "open", "ESB.chm", NULL, NULL, SW_SHOWNORMAL); }
Vielen Dank trotzdem!