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 Wie bekomme ich eine Liste aller Steuerelement einer Tform (https://www.delphipraxis.net/148175-wie-bekomme-ich-eine-liste-aller-steuerelement-einer-tform.html)

R2009 24. Feb 2010 08:54


Wie bekomme ich eine Liste aller Steuerelement einer Tform
 
Hi DP'ler,
wieder eine Frage die, wie ich geglaubt hatte, ganz einfach zu lösen ist.

Ich nutze:
Delphi-Quellcode:
    (sender as tform).GetTabOrderList(List);
oder
    (sender as twincontrol).GetTabOrderList(List);
um eine Liste aller Steuerelemente zu bekommen die eine Form enthält.
Das geht aber nur wenn das Steuerelement von Twincontrol abgeleitet ist.
Bei Tmainmenu z.B. geht das nicht.
Ich nutze das Ganze um Sprachinformationen oder Inhalte (z.B. Tedit) zuzuweisen.
Mach ich da etwas grundsätzlich falsch, oder ist das der falsche Weg um die Liste aller Steuerobjekte zu bekommen.

Grüsse
Rainer

Bernhard Geyer 24. Feb 2010 09:01

Re: Wie bekomme ich eine Liste aller Steuerelement einer Tfo
 
Die Controls und Components-Properties liefern das gewünschte. Siehe auch Hilfe von Delphi

R2009 24. Feb 2010 11:42

Re: Wie bekomme ich eine Liste aller Steuerelement einer Tfo
 
Hi,
danke Bernhard, Problem gelöst(mit deinem Ansatz):

Delphi-Quellcode:
    For m:=0 to (sender as Tform).ComponentCount-1 do
      begin
        name:=(sender as Tform).Components[m].Name;
        sql:='select KEY, NAME, '+language+' from language where KEY='+chr(39)+li+chr(39)+' and NAME='+chr(39)+name+chr(39);
        tab := db.GetTable(sql);
        if (sender as Tform).Components[m] is Tbutton then
           begin
             (((sender as Tform).Components[m]) as Tbutton).caption:=tab.FieldAsString(2);
           end;
        if (sender as Tform).Components[m] is Tcheckbox then
           begin
             (((sender as Tform).Components[m]) as Tcheckbox).caption:=tab.FieldAsString(2);
           end;
     .......
     .......
Vielen Dank
Rainer


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