![]() |
Tasten global "abfangen"
Hallo,
ich muss eine Anwendung etwas bedienerfreundlicher gestalten - die Erschaffer haben sich leider nicht immer an den Guide gehalten. Das System bietet diverse Shortcuts an die aus jedem Formular funktionieren sollten. Ich würde nun gerne Tastenkürzel oder F-Tasten abfragen (abfangen) und zwar so, dass ich nicht in jedes Formular muss. Bspw. ruft die Taste F8 immer ein bestimmtes Formular auf. Dies wird in jedem Formular "OnKeyPress" behandelt. Das würde ich gerne einmalig und zentral behandeln. Geht das und wenn ja wie? Gruß Heiko |
AW: Tasten global "abfangen"
In den OnKeyPress/OnKeyDown aller Forms eine globale Funktion aufrufen, welche die übergreifende Behandlung ausführt.
Dafür kann man seine Forms auch ableiten/vererben und das Verhalten ins virtual KeyDown/KeyPress des gemeinsamen Vorfahren einbauen. oder TApplicationEvents.OnMesssage |
AW: Tasten global "abfangen"
Zitat:
nie von gelesen. Wie nutzt man das? |
AW: Tasten global "abfangen"
|
AW: Tasten global "abfangen"
danke
|
AW: Tasten global "abfangen"
Und da dann
![]() TApplicationEvents.On... ist die praktischere Variante des alten Application.On... |
AW: Tasten global "abfangen"
Nichts gegen die vorigen Vorschläge, dennoch zeig ich mal wie man es nur einmal behandeln könnte, dazu musst Du die .dpr datei modifizieren.
Delphi-Quellcode:
program Project12;
uses Winapi.Windows, Winapi.MMSystem, Vcl.Forms, Unit12 in 'Unit12.pas' {Form12}, Unit13 in 'Unit13.pas' {Form13}; {$R *.res} // hotkey behandlung procedure HotkeyTimer(TimerID, Msg: Uint; dwUser, dw1, dw2: DWord); pascal; begin if ((GetKeyState(VK_F8) and (1 shl 31)) <> 0) then // VK_F8 wird in diesem Beispiel genutzt um ein Formular anzuzeigen Form13.Show; end; var HID: Integer; begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm12, Form12); Application.CreateForm(TForm13, Form13); // hotkey installieren HID := TimeSetEvent(10, 0, @HotkeyTimer, 0, TIME_PERIODIC); Application.Run; // hotkey entfernen TimeKillEvent(HID); end. |
AW: Tasten global "abfangen"
Zitat:
PS: Ein MultimediaTimer, der in einem eigenen Thread läuft. |
AW: Tasten global "abfangen"
Zitat:
Ich hatte es nicht auf aktualität geprüft, weiß nur das es seit Jahren gut läuft :lol: |
AW: Tasten global "abfangen"
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz