![]() |
Alle komponenten eines typs ansprechen?
frohes neues!
ist es möglich alle komponenten eines typs die sich auf meinem formular befinden, anzusprechen und z.b. die textfarbe bei allen labels auf die gleiche farbe zu setzen? natürlich ohne, dass ich weiß wie die label heißen und ihre namen selber eintippe? |
Re: Alle komponenten eines typs ansprechen?
Spricht da die Faulheit ?!? ; )
Ich weiss ja nicht wieviele Komponenten du in deinem Prog hast aber es sollte doch möglich sein eine OnCreate Prozi zu basteln die alle Labels auf eine einheitliche Farbe setzt oder ? Ich wüsste keine möglichkeit wie man alle Komponenten ansprechen kann :( |
Re: Alle komponenten eines typs ansprechen?
das mit den antworten geht hier immer echt schnell!
ich hab die label leider noch alle selber eingefügt per hand :pale: . aber es sind zu viele um alles einzutippen und dann wollte ich es etwas eleganter machen. |
Re: Alle komponenten eines typs ansprechen?
Hi - Weis nicht, ob das dein Problem löst:
Code:
var
i: Byte; begin for i:=0 to Form1.ComponentCount-1 do if Form1.Components[i] is TLabel then with Form1.Components[i] as TLabel do Font.Color:=clRed end; |
Re: Alle komponenten eines typs ansprechen?
So kannst du das machen ...
Delphi-Quellcode:
procedure TForm1.Irgendwas;
VAR I: Integer; begin FOR I := 0 TO form1.ControlCount - 1 DO BEGIN IF (form1.Components[i] IS TLabel)THEN With (form1.Components[i] as TLabel) do begin Caption:='Label1234'; color:=clRed; end; // with IF (form1.Components[i] IS TButton)THEN With (form1.Components[i] as TButton) do begin Caption:='Button 1234'; end; // with END; // for end; :hi: |
Re: Alle komponenten eines typs ansprechen?
Mist, wieder zu langsam ... :roll:
|
Re: Alle komponenten eines typs ansprechen?
Zitat:
Wenn es per Code gehen soll ist Components als Array of Component dein Freund.
Delphi-Quellcode:
oder in D2005:
for i := 0 to pred(ComponentCount) do
if Components(i) is TLabel then with Components(i) as TLabel do TLabel(Components(i)).Font.Color := clIrgendWas;
Delphi-Quellcode:
war auch zu langsam, aber ich bin auch im Urlaub. Da darf man langsam sein :P
var
Component :TComponent; begin ... for Component in Components do if Component is TLabel then TLabel(Component).Font.Color := clIrgendWas; ... |
Re: Alle komponenten eines typs ansprechen?
so jetzt funzt es!
vielen dank für eure schnellen und guten antworten. aber erst musste ich self.controlcount schreiben da sonst zugriffsverletzungen oder listenüberschreitungen auftraten. hab ich da was falsch verstanden? |
Re: Alle komponenten eines typs ansprechen?
Zitat:
@Topic
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 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-2025 by Thomas Breitkreuz