Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#11

AW: D7 FindComponent über .tag und Caption

  Alt 3. Jun 2016, 17:33
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.

Geändert von nahpets ( 3. Jun 2016 um 17:40 Uhr) Grund: Schreibfehler behoben
  Mit Zitat antworten Zitat