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 Auf der Suche nach: FindNextControl (https://www.delphipraxis.net/10940-auf-der-suche-nach-findnextcontrol.html)

samson 28. Okt 2003 13:41


Auf der Suche nach: FindNextControl
 
Hallo,

Ich habe ein PageControl, welches mehrere TabSheets enthält. Damit ich meine Software per Keyboard bedienen kann, habe ich eine Funktion geschrieben, welche mit [STRG]+[1..9] das entsprechende Tab auswählt.

Die Funktion:

Delphi-Quellcode:
procedure HSMChgTabSheet(pcPageControl:TPageControl; const Key:word);
begin
  case Key of
    VK_1 : if 1 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 0;
    VK_2 : if 2 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 1;
    VK_3 : if 3 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 2;
    VK_4 : if 4 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 3;
    VK_5 : if 5 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 4;
    VK_6 : if 6 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 5;
    VK_7 : if 7 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 6;
    VK_8 : if 8 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 7;
    VK_9 : if 9 <= pcPageControl.PageCount then pcPageControl.ActivePageIndex := 8;
  end;
end;
Diese Funktion zeigt die TabSheets auch wunderbar an, nur das ich noch so keine richtige Idee habe, wie ich das erste Element selektieren kann.

Jetzt bin ich in der Hilfe auf die Funktion: FindNexControl(..) aufmerksam geworden.

Ein TabSheet bzw. PageControl ist doch von TWinControl abgeleitet. Ich verstehe nicht, warum ich die Methode nicht habe, bzw. nicht aufrufen kann.

Hat vielleicht jemand einen Tip für mich???


Grusss


Samson

himitsu 28. Okt 2003 14:34

Re: Auf der Suche nach: FindNextControl
 
Versuchs mal so:
Delphi-Quellcode:
TWinControl := FindNextControl(pcPageControl.ActivePage, True, True, True);

samson 29. Okt 2003 08:47

Re: Auf der Suche nach: FindNextControl
 
Hallo himitsu,

erstmal danke für Deine Hilfe. Ich habe es ausprobiert. In dem normalen Formular (Methode: FormKeyDown) funktioniert das wunderbar. Versuche ich aber die Methode: 'FindNextControl(...)' in meiner allgemeinen Unit auszuführen, so habe ich das Problem, das der Compiler nix mehr weiss und sich Stur stellt.

Folgende Units sind in meiner allgemeinen Funktions-Unit eingebunden:

Delphi-Quellcode:
uses windows, comCtrls, controls, shellapi, DBGrids, DBCtrls, strutils, classes, uHSMConstVirtuellKeys, inifiles, forms;
Woran könnte das liegen, das der Compiler die Methode nicht kennt???

Gruss


Samson :freak:

himitsu 29. Okt 2003 10:03

Re: Auf der Suche nach: FindNextControl
 
Nimm Controls oder QControls noch mit in die Uses auf.
Ich kenn' zwar nicht den Unterschied zwischen beiden, hab' aber selber Controls verwendet.


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