[STRG]+[1] oder [STRG]+[2] ....
Möchte das immer wenn jemand in mein Delphi Programm [STRG]+[1] Drückt in die Page-Control-->TabSheet1 springt und der Focus auf der Registerkarte TabSheet1 liegt.
Bei [STRG]+[2] = Page-Control-->TabSheet2 Bei [STRG]+[3] = Page-Control-->TabSheet3 ... Bei [STRG]+[9] = Page-Control-->TabSheet9 Ich habe schon viele Forumeinträge versucht doch keiner Hat wirklich geklappt. Kann mir Bitte einer Helfen Mfg Robert |
Re: [STRG]+[1] oder [STRG]+[2] ....
Hallo!
Willkommen in der Delphi-Praxis! :party: hast du es schon damit versucht?
Delphi-Quellcode:
den Code musst du in die Form.onkeydown einfügen.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if ssctrl in shift then begin case char(key) of '1': //tab 1 anzeigen '2': //tab 2 anzeigen [...] end; end; end; du kannst die Keydowns von allen anderen Komponenten auch diesen Code ausführen lassen. |
Re: [STRG]+[1] oder [STRG]+[2] ....
schau dir mal die TApplicationEvents Kompo an
EDIT: welche Delphiversion benutzt du? Bitte in Profil angeben, dann kann die Hilfe auch gezielter erfolgen. |
Re: [STRG]+[1] oder [STRG]+[2] ....
Delphi-Quellcode:
klappt super !!!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if ssctrl in shift then begin case char(key) of '1': //tab 1 anzeigen '2': //tab 2 anzeigen [...] end; end; end; Danke viel mals !!! Nun bleibt noch die Frage offen wie ich bei STRG + 1 im Pagecontrol-->TabSheet1 Focusiere. Also ich muss unbedingt das Focus auf den Registerkartenkopf setzen beim öffen der TabSheet1, TabSheet2,... Danke schonmal im vorraus für die Hilfe |
Re: [STRG]+[1] oder [STRG]+[2] ....
Hi binio,
etwas universeller ist:
Delphi-Quellcode:
Da kannst du weitere Tabsheets hinzufügen etc.
procedure TFRMMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin with PageControl1 do begin if (Shift = [ssCtrl]) and (key in [48..56]) and (PageCount > key - 49) then begin ActivePageIndex := key - 49; key := 0; end; end; end; CCu, Frank |
Re: [STRG]+[1] oder [STRG]+[2] ....
Delphi-Quellcode:
klappt lauch super und das tolle ist noch das ich die F1 bis F12 Tasten mit einbinden kann :)
procedure TFRMMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin with PageControl1 do begin if (Shift = [ssCtrl]) and (key in [48..56]) and (PageCount > key - 49) then begin ActivePageIndex := key - 49; key := 0; end; end; end; Aber wie setze ich jetzt den Focus auf die Registerkartenköpfe? Habe das Problem das wenn ich in einer Registerkarte (1) auf die darin enthaltenen Listenfelder gehe und z.B. [STRG]+[2] oder [STRG]+[TAB] drücke der in Registerkarte (2) auf die darin enthaltene Listenfelder geht. Er soll aber auf den Registerkartenkopf Mfg Robert P.S. ich sollte wohl noch erwehnen das ich newbie in Delphi bin :( |
Re: [STRG]+[1] oder [STRG]+[2] ....
Delphi-Quellcode:
:?:
tabsheet1.setfocus
ich weiss nicht genau, aber vllt gibts ja sowas. |
Re: [STRG]+[1] oder [STRG]+[2] ....
Delphi-Quellcode:
klappt leider nicht :(
procedure TForm1.TabSheet1Show(Sender: TObject);
begin tabsheet1.setfocus; end; procedure TForm1.TabSheet2Show(Sender: TObject); begin tabsheet2.setfocus; end; procedure TForm1.TabSheet3Show(Sender: TObject); begin tabsheet3.setfocus; end; |
Re: [STRG]+[1] oder [STRG]+[2] ....
So geht's auf jedenfall:
Delphi-Quellcode:
PageControl1.ActivePage := TabSheet2;
|
Re: [STRG]+[1] oder [STRG]+[2] ....
Leider nicht.
Er Zeigt mir bei
Delphi-Quellcode:
Tabsheet1 ... Tabsheet9 an, aber wenn ich vorher in Tabsheet1 die Liste angeklickt hatte
PageControl1.ActivePage := TabSheet1;
... PageControl1.ActivePage := TabSheet9; dann setzt er das Focus auch in Tabsheet2 ... Tabsheet9 auf die darinenthaltene Liste. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz