Einzelnen Beitrag anzeigen

gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

Problem beim Zugriff auf Komponenten

  Alt 25. Aug 2006, 06:41
Guten Morgen, Allerseits.

Leider ist mir kein aussagekräftigerer Titel eingefallen - hier nun mein Problem:

Auf einem Panel werden zur Laufzeit 27x27 Labels erzeugt. Wird ein Label angeklickt, sollen in allen Labels der selben Spalte, die den gleichen Text enthalten wie das angeklickte Label, der Text gelöscht werden. Ich habe das so gelöst:

Delphi-Quellcode:
begin
  TempLabel := System.Windows.Forms.&Label.Create;
  // speichert das angeklickte Label in TempLabel
  TempLabel := Sender as System.Windows.Forms.&Label;

  for I := 0 to Self.Panel1.Controls.Count - 1 do
  begin
    if (Panel1.Controls[i].Left = TempLabel.Left)
    AND (TempLabel.Text = Panel1.Controls[i].Text) then
    begin
      Panel1.Controls[i].Text := '';
    end;
    // Kontrollanzeige
    TBText.Text := TBText.Text + i.ToString + ': ' + TempLabel.Text + ' - ' + Panel1.Controls[i].Text + #13#10;
  end;
Dabei tritt folgendes Problem auf:

Wenn der erste Vergleich "true" ist, wird auch TempLabel.Text verändert und enthält dann einen leeren String, so dass alle weiteren Vergleiche "false" ergeben.

Ich kann mir das nicht erklären, da m.E. die Zuweisung des angeklickten Labels an TempLabel ausserhalb der Schleife vorgenommen wird und in der Schleife keine weitere Zuweisung erfolgt. Das scheint aber offensichtlich doch nicht so zu sein. Wo liegt mein Denkfehler?

Für jeden Hinweis bin ich wie immer dankbar.

mfg gfjs;
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat