Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anwendungsglobale Shortcuts definieren? (https://www.delphipraxis.net/55047-anwendungsglobale-shortcuts-definieren.html)

bernd_schreiber 15. Okt 2005 19:31


Anwendungsglobale Shortcuts definieren?
 
Hallo!

Ich hoffe, das Problem mit meiner Überschrift zum Thema korrekt getroffen zu haben!

Wie erreiche ich, das die Reaktion auf eine Taste in immer der gleichen Weise erfolgt, unabhängig davon, welches Control gerade selektiert ist bzw. den Fokus hat. Ein Beispiel aus der IDE ist die F1-Taste zum Aufruf der Hilfe oder Strg+S zum Speichern der aktuellen Änderungen des Quelltextes. Ich möchte einige Funktionen meiner Anwendung global, das heißt in jeder Situation der Anwendung zugänglich halten, indem ich dafür Tastenkürzel definiere. Wenn der Anwender eines der Tastenkürzel betätigt, soll die geforderte Funktion aufgerufen werden, unabhängig davon, ob ich gerade editiere, in einer Listbox bin um irgendwas auszuwählen oder in irgendeinem Menü oder, oder, oder... Ausnahme modale Dialoge.

Bin dankbar für jede konsruktive Hilfe!

Bernd

gsh 15. Okt 2005 19:35

Re: Anwendungsglobale Shortcuts definieren?
 
Also da wirst du einen Hook schreiben müssen.
Im Forum findest du bestimmt genug

bernd_schreiber 15. Okt 2005 20:08

Re: Anwendungsglobale Shortcuts definieren?
 
Hallo gsh!

Danke für das Stichwort. Werde mich da mal schlau machen. Gefällt mir zwar gar nicht, aber sei es, wie es sei. Da muss ich jetzt halt durch. Danke erst mal. Wenn weitere Fragen auftauchen, melde ich mich wieder hier.

Tschüß sagt

Bernd

Rastaman 15. Okt 2005 20:32

Re: Anwendungsglobale Shortcuts definieren?
 
Echt?
Ich würd ma sagen:
Form selektieren, den Reiter Ereignisse anklicken und dann auf OnKeyPress klicken.

Dann müsste das erscheinen:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

end;
Dann musst du die Taste abfragen in dieser Prozedur.
Wenn die Form auf F reagieren soll machst du das...

Delphi-Quellcode:
if Key in ['F', 'f'] then
  Prozeduraufruf;
Prozeduraufruf steht halt dafür was passieren soll wenn dieser Key (in diesem Fall F bzw f) gedrückt wird.
das musst du zwar für jede Form machen, aber ich glaube es ist definitiv leichter als mit Hooks ;)

PS: Hoffe das meintest du überhaupt so ^^

//Edit: Oder mach n TMainMenu und weis die Shortcuts zu :mrgreen:

CalganX 15. Okt 2005 21:28

Re: Anwendungsglobale Shortcuts definieren?
 
Hi,
warum denn so umständlich über diese Geschichte mit Hooks oder den Ereignissen? Die Delphi-VCL hat doch extra dafür Dinge parat (glaubt nicht dass 9 Versionen Delphi ohne ein wenig VCL-Praxis-Erfahrung vergangen seien). Am Besten für dich geeignet ist wohl der Delphi-Referenz durchsuchenActionManager.
Mit dem kannst du Aktionen erstellen und mit Shortcuts versehen. Diese kannst du, musst du aber afaik nicht, auch auf Toolbars oder Menüs legen. Wenn man sich einmal ein wenig damit beschäftigt hat, will man sie jeder größeren Anwendung nicht mehr missen, denn die Action-Manager sind extrem praktisch. :)

Chris

gsh 16. Okt 2005 00:01

Re: Anwendungsglobale Shortcuts definieren?
 
aso sorry bernd_schreiber ich dachte du meinst mit global den gesamten Desktop also auch dann wenn dein Programm nicht aktiviert ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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-2025 by Thomas Breitkreuz