Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPageControl und Tastatur-Steuerung (https://www.delphipraxis.net/58749-tpagecontrol-und-tastatur-steuerung.html)

hincapie 12. Dez 2005 09:59


TPageControl und Tastatur-Steuerung
 
Hallo,
ich habe da ein Problem mit dem Wechseln von TabSheets innerhalb eines PageControls per Tastendruck.
Versucht habe ich es bisher damit:
Delphi-Quellcode:
procedure TEditForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  ...
  if Key = VK_F11 then
  begin
    with PageControl1 do
         FindNextPage(ActivePage, true, true);
    Key := 0;
  end;
end;
Leider funktioniert es nicht! :(
Eine andere Möglichkeit gibt es offensichtlich nicht, da TPageControl ja kein OnKeyDown-Ereignis hat.
Ach ja, bei TEditForm ist KeyPreview := True;
Hat jemand da vielleicht eine andere Lösung gefunden? :wink:

Sharky 12. Dez 2005 10:07

Re: TPageControl und Tastatur-Steuerung
 
Hai hincapie,

im Notfall sollte dieser Code dir helfen:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if Key = VK_F11 then
  begin
    with PageControl1 do
    begin
      if (ActivePageIndex < Pred(PageCount)) then
      begin
        ActivePageIndex := ActivePageIndex + 1
      end
      else
      begin
        ActivePageIndex := 0
      end;
    end;
    Key := 0;
  end;
end;
:oops:
In deinem Code ist nur ein kleiner Fehler ;-)
Delphi-Referenz durchsuchenFindNexPage ist eine Funktion welches dir das nächste TTabSheet zurückliefert. Also einfach so ändern:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if Key = VK_F11 then
  begin
    with PageControl1 do
    begin
     ActivePage := FindNextPage(ActivePage, true, true);
    end;
    Key := 0;
  end;
end;

Lannes 12. Dez 2005 10:58

Re: TPageControl und Tastatur-Steuerung
 
Hallo,

oder alternativ für:
Delphi-Quellcode:
ActivePage := FindNextPage(ActivePage, true, true);
das:
Delphi-Quellcode:
SelectNextPage(true);

hincapie 12. Dez 2005 11:15

Re: TPageControl und Tastatur-Steuerung
 
Alles ausprobiert, tut sich nichts.
Ich glaube inzwischen daß das OnkeyDown-Ereignis gar nicht am PageControl oder den TabSheets ankommt.
Aber wie soll's sonst klappen?

Edit:
Hat's vieleicht damit zu tun, daß EditForm ein MDI-Child ist?

Sharky 12. Dez 2005 11:22

Re: TPageControl und Tastatur-Steuerung
 
Dann muss der Code natürlich in das OnKeyDown der MidiForm.

hincapie 12. Dez 2005 11:29

Re: TPageControl und Tastatur-Steuerung
 
Versucht, aber auch dann tut sich nichts.

Sharky 12. Dez 2005 11:33

Re: TPageControl und Tastatur-Steuerung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hincapie
Versucht, aber auch dann tut sich nichts.

Test mal das Projekt im Anhang.

hincapie 12. Dez 2005 14:14

Re: TPageControl und Tastatur-Steuerung
 
So, das Problem ist gelöst!
Ich Idiot hatte die F11-Taste bereits für eine andere Funktion belegt! :oops:
Jetzt läuft es!
Nochmal Danke für eure Tipps!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 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