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