Thema: Delphi Panel im Panel suchen

Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Panel im Panel suchen

  Alt 21. Apr 2006, 11:55
Hallo,

das Stichwort lautet "rekursive Suche". Hier ist eine "Quick&Dirty"-Lösung:

Delphi-Quellcode:
function Suche (aParent: TWinControl; const aName: string): TControl;
  var ii : Integer;
begin
  // alle Controls von aParent prüfen
  for ii := 0 TO aParent.ControlCount - 1 do
  begin
    // Zeiger auf ein Control holen
    Result := aParent.Controls[ii];
    // Ist das Control ein TPanel?
    if (Result is TPanel) then
    begin
      // Falls der Name stimmt, sind wir fertig
      if SameText(Result.Name, aName) then
        Exit;
      // Rekursive Suche in diesem Control, bei Erfolg exit
      Result := Suche(TPanel(Result), aName);
      if Assigned(Result) then
        Exit;
    end;
  end;
  // Suche erfolglos beendet
  Result := Nil;
end;
Der Aufruf sieht dann beispielsweise so aus:

Panel := Suche(Form1, 'Panel1') as TPanel; Gruß Hawkeye
  Mit Zitat antworten Zitat