![]() |
Panel im Panel suchen
Hallo,
ich habe ein Formular mit verschiedenen Panels. soweit so gut. Ich kann das Formular nach allen Panels durchsuchen. Das funktioniert auch einwandfrei. Damit finde ich das gewünschte Panel: panel := Findcomponent ('PANEL1') as tpanel; So, nun zu meinen Problem: In gewissen Panels sind weitere Panels enthalten. Diese kann ich nicht finden. Wahrscheinlich ist es ganz einfach ... nur ich weis es leider nicht... schön, wenn mir wer helfen könnte gruss fboesel :angel: |
Re: Panel im Panel suchen
Kuck mal
![]() |
Re: Panel im Panel suchen
Hallo,
das Stichwort lautet "rekursive Suche". Hier ist eine "Quick&Dirty"-Lösung:
Delphi-Quellcode:
Der Aufruf sieht dann beispielsweise so aus:
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;
Delphi-Quellcode:
Gruß Hawkeye
Panel := Suche(Form1, 'Panel1') as TPanel;
|
Re: Panel im Panel suchen
Danke,
mein Code - dank Eurer Hilfe - rockt. Wochen-Ende gerettet gruss fboesel :angel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz