Nach welchen Kriterien sollen denn die Captions geändert werden.
Was bezweckst Du überhaupt mit der Abfrage von Tag und der Änderung der Caption?
'ne Hitliste für ein Spiel?
'ne Liste von (Programm-)Abläufen?
Gib' uns mal eine (möglichst) genaue Beschreibung dessen, was Du umsetzen möchtest.
Eventuell können wir dann zielgerichtet antworten und nicht nur so ins Blaue, wie so ein Problem eventuell theoretisch gelöst werden könnte.
Statt der Case-Abfrage aus meinen Beispielen oben, könntest Du dort ja auch beliebige If-Abfragen einfügen, Funktionsaufrufe (für was auch immer).
Dashier dürfte relativ nahe an Deine Idee kommen:
Delphi-Quellcode:
var
myComp : TComponent;
x : Integer;
begin
for x := 1 to 10 do begin
myComp := Findcomponent(Format('Panel%d',[x]));
if Assigned(myComp) and (myComp is TPanel) then begin
TPanel[myComp].Caption = 'bla bla';
end;
end;
end;
Das Beispiel von Helmi müsste funktionieren, ändere es bitte mal so ab:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
Component: TComponent;
begin
for i := 1 to 10 do
begin
Component := Findcomponent('Panel'+ IntToStr(i));
If Assigned(Component) then
If Component.ClassType = TPanel then
ShowMessage(Format('Caption: %s, Name: %s, Tag: %d, i = %d',
[TPanel(Component).Caption,Component.Name,Component.Tag,i]));
end;
end;
Und dann überprüfe, ob die Werte von Name und Tag mit dem von Dir Erwarteten übereinstimmen.