Selbe Eigenschaft mehrerer Objekte in loop ändern

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Dr. Cosnole
Beiträge: 8
Registriert: Mo 27. Jan 2014, 18:50

Selbe Eigenschaft mehrerer Objekte in loop ändern

Beitrag von Dr. Cosnole »

Guten Morgen zusammen,

ich suche nach einer Möglichkeit eine eigenschaft z.B. Text von mehreren Objecten z.B. TLabel in einer Schleife zu ändern.

z.B.

Code: Alles auswählen

for i:=0 to Index-1 do
begin
Label[i].Text := 'blablabla'
end;
Ich hoffe ihr habt verstanden, was ich meine.
Wäre super wenn jemand einen weg wüsste, wie man so etwas anstellt.

Nette Grüße
Dr. Console
Zuletzt geändert von Lori am So 6. Apr 2014, 15:09, insgesamt 1-mal geändert.
Grund: Korrektur Highlighter

Code: Alles auswählen

var name : String;
name:= "Dr. Cosnole"; // Verdammter Tippfehler

Yogi72108
Beiträge: 22
Registriert: Fr 10. Feb 2012, 19:09
OS, Lazarus, FPC: Debian wheezy (FPC 2.7.1 SVN 29278; Laz 1.3 SVN 47189)
CPU-Target: 32Bit
Wohnort: im Schwabenländle

Re: Selbe Eigenschaft mehrerer Objekte in loop ändern

Beitrag von Yogi72108 »

Die Frage kommt nicht so ganz klar rüber, aber ich könnte mir sowas vorstellen:

Code: Alles auswählen

 
for i:=0 to ControlCount-1 do
  if Controls[i] is TLabel then
    TLabel(Controls[i]).Text:='123456abcde';
 
Das schnappt sich einfach jedes TLabel das gefunden wird und setzt den gleichen Text.

Dr. Cosnole
Beiträge: 8
Registriert: Mo 27. Jan 2014, 18:50

Re: Selbe Eigenschaft mehrerer Objekte in loop ändern

Beitrag von Dr. Cosnole »

Danke,

das ist schon recht nahe an eminer Idee dran.
Mein Problem ist, ich habe einige Objekte, wovon einige einen Namen nach dem Schema Sub1..Sub2..usw. tragen und ich möchte nur die Werte von diesen ändern, nicht von den anderen Objekten.
Gibt es da auch eine möglichkeit? Evtl. eine Art Platzhalter für eine Namensabfrage?

Nette Grüße
Dr. Console

Code: Alles auswählen

var name : String;
name:= "Dr. Cosnole"; // Verdammter Tippfehler

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2805
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Selbe Eigenschaft mehrerer Objekte in loop ändern

Beitrag von m.fuchs »

Angenommen es ginge um die Buttons mit Namen Sub1, Sub2, Sub3 und du willst ihre Caption ändern:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to 3 do begin
    TButton(FindComponent('Sub' + IntToStr(i))).Caption := 'Blubb';
  end;
end;  
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Dr. Cosnole
Beiträge: 8
Registriert: Mo 27. Jan 2014, 18:50

Re: Selbe Eigenschaft mehrerer Objekte in loop ändern

Beitrag von Dr. Cosnole »

Perfekt, genau das habe ich gesucht!
Danke!

Code: Alles auswählen

var name : String;
name:= "Dr. Cosnole"; // Verdammter Tippfehler

Antworten