Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [STRG]+[1] oder [STRG]+[2] .... (https://www.delphipraxis.net/57710-%5Bstrg%5D-%5B1%5D-oder-%5Bstrg%5D-%5B2%5D.html)

binio 25. Nov 2005 13:09


[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

ichbins 25. Nov 2005 13:17

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Hallo!

Willkommen in der Delphi-Praxis! :party:

hast du es schon damit versucht?

Delphi-Quellcode:
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;
den Code musst du in die Form.onkeydown einfügen.

du kannst die Keydowns von allen anderen Komponenten auch diesen Code ausführen lassen.

Angel4585 25. Nov 2005 13:18

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.

binio 25. Nov 2005 13:34

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Delphi-Quellcode:
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;
klappt super !!!
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

dataspider 25. Nov 2005 13:39

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Hi binio,
etwas universeller ist:
Delphi-Quellcode:
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;
Da kannst du weitere Tabsheets hinzufügen etc.
CCu, Frank

binio 25. Nov 2005 14:03

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Delphi-Quellcode:
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;
klappt lauch super und das tolle ist noch das ich die F1 bis F12 Tasten mit einbinden kann :)
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 :(

ichbins 25. Nov 2005 14:24

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Delphi-Quellcode:
tabsheet1.setfocus
:?:

ich weiss nicht genau, aber vllt gibts ja sowas.

binio 25. Nov 2005 14:32

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Delphi-Quellcode:
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;
klappt leider nicht :(

Matze 25. Nov 2005 14:35

Re: [STRG]+[1] oder [STRG]+[2] ....
 
So geht's auf jedenfall:

Delphi-Quellcode:
PageControl1.ActivePage := TabSheet2;

binio 25. Nov 2005 14:43

Re: [STRG]+[1] oder [STRG]+[2] ....
 
Leider nicht.
Er Zeigt mir bei

Delphi-Quellcode:
PageControl1.ActivePage := TabSheet1;
...
PageControl1.ActivePage := TabSheet9;
Tabsheet1 ... Tabsheet9 an, aber wenn ich vorher in Tabsheet1 die Liste angeklickt hatte
dann setzt er das Focus auch in Tabsheet2 ... Tabsheet9 auf die darinenthaltene Liste.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 1 von 2  1 2      

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