Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Viele Komponenten dynamisch ansprechen ?


matze - Mi 10.07.02 18:35
Titel: Viele Komponenten dynamisch ansprechen ?
Hallo !!!!

Ich habe auf meinem Formular viele Labels (Label1, Label2, Label3......)
In meinem Programm werden viele Variablen abgefragt, und ich will, dass das dann in den Labels ausgegeben wird.
Also konkret:

Ich arbeite in einer for-Schleife. Für die Variable x werden die werte 1 bis 30 eingesetzt. dann werden verschiedene Variablen geprüft und dann soll das ergebnis in dem passenden Label (Labelx) ausgegeben werden.

Wie muss das ausschauen ???

Etwa so ???

Quelltext
1:
2:
3:
4:
 for schleife mit x
if schleifen

Label[x].caption := ergebnis der if schleifen


DaDoc - Mi 10.07.02 19:26

Hi ...

Spontan fällt mir dazu folgende Lösung ein:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TFormxxx.FillLabel(LabelIndex: Integer; Value: string);
var
  TC: TComponent;
begin
  TC := FindComponent('Label' + IntToStr(LabelIndex));
  if Assigned(TC) then
    TLabel(TC).Caption := Value;
end;

Beispiel:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TFormxxx.Button1Click(Sender: TObject);
var
  X: Integer;
  Wert: Integer;
begin
  for X := 1 to 30 do begin
    Wert := 2 * X; // oder so ...
    FillLabel(X, IntToStr(Wert)); // oder "FloatToStr()" oder "Format()"...
  end;
end;


Sven


Klabautermann - Do 11.07.02 00:53

Hallo,

vieleicht hilft dir auch die Idee des Komponentenarrays aus diesem Thread [http://www.auq.de/viewtopic.php?t=511] weiter.

Gruß
Klabautermann


matze - Do 11.07.02 18:16

Danke an euch !!! Der Threat von Kalbauterman hat mir zwar nicht wirlich geholfen. Das nadre dafür aber !!!! :idea: