AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Panel im Panel suchen

Ein Thema von fboesel · begonnen am 21. Apr 2006 · letzter Beitrag vom 21. Apr 2006
Antwort Antwort
fboesel

Registriert seit: 20. Nov 2004
17 Beiträge
 
#1

Panel im Panel suchen

  Alt 21. Apr 2006, 10:30
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
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#2

Re: Panel im Panel suchen

  Alt 21. Apr 2006, 10:34
Kuck mal hier, das müsste auch für dich passen (mit kleinen Anpassungen). Du musst allerdings statt "ComponentCount" "ControlCount" verwenden (ist in dem Beispiel noch verkehrt, aber lässt sich nicht mehr ändern...)
  Mit Zitat antworten Zitat
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, 10: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
fboesel

Registriert seit: 20. Nov 2004
17 Beiträge
 
#4

Re: Panel im Panel suchen

  Alt 21. Apr 2006, 13:49
Danke,

mein Code - dank Eurer Hilfe - rockt.
Wochen-Ende gerettet

gruss
fboesel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz