AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Herausfinden wie viele Panels auf einen Panel liegen
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden wie viele Panels auf einen Panel liegen

Ein Thema von Andreas L. · begonnen am 29. Mär 2006 · letzter Beitrag vom 1. Apr 2006
Antwort Antwort
Andreas L.
(Gast)

n/a Beiträge
 
#1

Re: Herausfinden wie viele Panels auf einen Panel liegen

  Alt 30. Mär 2006, 19:16
Zitat von marabu:
@Dennis: alles richtig, aber du sollst die Rekursion gar nicht auf eine Ebene begrenzen:

Zitat von onlinehome:
... ich habe ein Panel auf welchen mehrere Panels liegen. ... Auf diesen Panels liegen weitere Panels ...
@Andreas: wie testet du denn?

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  s: TStringList;
begin
  s := TStringList.Create;
  GetControls(Panel1, s);
  ShowMessage(s.Text);
  s.Free;
end;
marabu
jetzt gehts. Leider wird mir das 1te Panel angezeigt, dann das ExPanel und noch dazu das Panel welches auf dem ExPanel liegt. Ich möchte jedoch das mir nur die ExPanels angezeigt werden.

ich habe mich mal selber versucht eine Routine zu schreiben. Da mein Kopf heute schon in der Berufschule geraucht hat denke ich mal das dies hier von der Logik nicht wirklich der Renner ist. Kompiliert wird es sogar bis zu den 2 Zeilen wo ich versuche auf den SpeedButton zu zugreifen:

Delphi-Quellcode:
function ArrangeExPanel(Sender : TObject):Boolean;
var
 i: Integer;
 useEdit: TObject;
 useDelete: TObject;
 sl: TStringlist;
begin
if Sender.ClassType=TPanel then
 begin
  sl:=TStringList.Create;
  repeat
    sl.add((Sender as TPanel).FindComponent('ExPanel').name);
  until (Sender as TPanel).FindComponent('ExPanel').name='';
   begin
    for i:=0 to sl.count-1 do
     begin
      useEdit:=(Sender as TPanel).FindComponent('Edit_'+sl.strings[i]);
      useDelete:=(Sender as TPanel).FindComponent('Delete_'+sl.strings[i]);
      useDelete:=(useDelete as TSpeedButton);
      useEdit:=(useEdit as TSpeedButton);
      useEdit.Left:=(Sender as TPanel).Width-3;
      useDelete.Left:=(Sender as TPanel).Width-87;
     end;
   end;
   sl.free;
   Result:=true;
 end
else
 begin
  Result:=false;
 end;
end;
  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 08:09 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-2025 by Thomas Breitkreuz