Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   alle untergeordneten Fenster bearbeiten (https://www.delphipraxis.net/127714-alle-untergeordneten-fenster-bearbeiten.html)

J Kadison 17. Jan 2009 20:19


alle untergeordneten Fenster bearbeiten
 
Hallo!

Erstmal sorry, wenn der titel nicht sehr vielsagend ist, aber mir ist keine bessere überschrift eingefallen.

Mein Problem:

Ich habe eine Komponente (möchte das ganze so allgemein halten wie möglich)
nennen wir diese Kompo mal X

Jetzt möchte ich alle Komponenten die X untergeordnet sind bearbeiten,
also als beispiel bei allen Enabled := false;
und das dann wieder von jeder komponente die ich eben herausgefunden und bearbeitet habe die untergeordnete bearbeiten.
(das geht ja dann recursiv)

aber wie kann ich denn die untergeordnete komponenten von X auslesen, bzw. dann auch noch bearbeiten.

Wäre dankbar, wenn mir jemand antworten könnte!

DANKEEEE :coder:

Morphie 17. Jan 2009 20:40

Re: alle untergeordneten Fenster bearbeiten
 
Hmmm so z.B.:

Delphi-Quellcode:
procedure SetChildsDisabled(C: TCustomControl);
var
i: integer;
begin
  for i := 0 to C.ControlCount-1 do
  begin
    C.Controls[i].Enabled:=false;
    SetChildsDisabled(TCustomControl(C.Controls[i]));
  end;
end;
Aufruf mit

Delphi-Quellcode:
SetChildsDisabled(Panel1);

omata 17. Jan 2009 20:43

Re: alle untergeordneten Fenster bearbeiten
 
Delphi-Quellcode:
procedure SetEnabled(AControl:TComponent; AEnable:boolean);
var i:integer;
    Control:TComponent;
begin
  if AControl is TWinControl then begin
    for i:=1 to TWinControl(AControl).ControlCount do begin
      Control:=TWinControl(AControl).Controls[i-1];
      if Control is TWinControl then begin
        TWinControl(Control).Enabled:=AEnable;
        SetEnabled(Control, AEnable);
      end;
    end;
  end;
end;

J Kadison 17. Jan 2009 20:53

Re: alle untergeordneten Fenster bearbeiten
 
huhu!

Das hört sich schonmal gut an AAAABER ^^

wie bekomm ich das ganze dann auch so kompatibel, dass es so gut wie mit allen Komponenten klappt?
also wichtig wären mir:
  • TForm
  • TButton
  • TListbox
  • TPanel
  • TBitButton
  • TLabel
  • TMainMenu
  • . . .

Das waren mal die, die auf jedem Fall gehen sollten . . . mehr sind aber auch nicht schlecht :D


Bei dem 2. Beitrag fallen shconmal die Fehler mit inkompatiblen Komponenten weg, allerdings hab ich hier folgenden fehler:
Delphi-Quellcode:
[Fehler] Main.pas(122): Undefinierter Bezeichner: 'ComSettings'
Benötigt diese Funktion/Procedur eine bestimmte Unit, die cih noch einbinden müsste?

omata 17. Jan 2009 20:56

Re: alle untergeordneten Fenster bearbeiten
 
Sorry, Tippfehler. Habe das oben korrigiert.

J Kadison 17. Jan 2009 21:04

Re: alle untergeordneten Fenster bearbeiten
 
xD

Hihi da wär der Kopp mal fast wieder schneller gewesen als die finger,
aber leider nur FAST :spin2:

Hätte es mir beinahe selbst gedacht^^


Hihi okay DANKE das 2. Funzt :)


Thema is somit (Edit: doch noch nicht) abgeharkt

:D

öhm sind das jetzt ALLE unterkomponenten?

weil ich habe auf meiner Form auch einen Timer ^^
wird der dann auch enabled? :D

terroretisch ja oder?


kann ich i-wie schaun, ob die komponente die ich enable en timer is und den dann evtl auslasse?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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