AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Alle Komponenten einer Form auf enabled := false setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Komponenten einer Form auf enabled := false setzen

Ein Thema von JoelH · begonnen am 25. Jun 2003 · letzter Beitrag vom 25. Jun 2003
Antwort Antwort
JoelH
(Gast)

n/a Beiträge
 
#1

Alle Komponenten einer Form auf enabled := false setzen

  Alt 25. Jun 2003, 09:17
gibt es eine Möglichkeit alle Komponenten (actionliste, buttons editfelder etc) auf einmal .enabled := false zu setzen für eine Form oder muss ich mir eine riesen Liste machen und dann jedes einzelne Element false setzen ?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 25. Jun 2003, 09:26
Hallo JoelH,

diese Liste gibt es schon, sie heißt Components, die Anzahl der Komponenten liefert die ComponentCount. Schau dir diese beiden Eigenschaften mal in der OH an.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
darkstone

Registriert seit: 4. Feb 2003
26 Beiträge
 
#3
  Alt 25. Jun 2003, 09:26
Mit einer rekursiven procedure müsste das gehen - so in dieser Art:

Delphi-Quellcode:
procedure Ctrl_SetEnabledState( ACtrl: TWinControl; State: Boolean );
var
  ChildCtrl: TWinControl;
  i: Integer; // Laufvar.
begin
  // Alle Child-Controls disablen
  for i:=0 to ACtrl.ControlCount do begin
    ChildCtrl := ACtrl.Controls[i];
    if ChildCtrl is TWinControl then begin
      Ctrl_SetEnabledState( ChildCtrl, State ); // Rekursion!
    end;
  end;
  // Control disablen
  ACtrl.Enabled := State;
end;
Voraussetzung dafür ist natürlich, dass die property "Enabled" in TWinControl definiert ist - das weiss ich jetzt nicht auswendig. Aber so - oder so ähnlich - müsste es gehen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4
  Alt 25. Jun 2003, 10:34
Hallo,
es sollte so
Delphi-Quellcode:
procedure TForm1.Ctrl_SetEnabledState(aForm, ACtrl: TWinControl; State: Boolean );
var
  ChildCtrl: TWinControl;
  i: Integer; // Laufvar.
begin
  // Alle Child-Controls disablen
  for i:=0 to ACtrl.ControlCount-1 do begin
    ChildCtrl := TWinControl(ACtrl.Controls[i]);
    if ChildCtrl is TWinControl then begin
      begin
      If ChildCtrl<>aForm then // Dadurch wird das Form nicht berücksichtigt
        ChildCtrl.Enabled := State;
      Ctrl_SetEnabledState(aForm,ChildCtrl, State ); // Rekursion!
      end;
    end;
  end;
end;
lauten

Dieser Aufruf setzt Enabled alle Controls auf False jedoch nicht das Formular
Code:
Ctrl_SetEnabledState(Form1,Form1,False);
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#5

hmm,

  Alt 25. Jun 2003, 12:56
Danke
  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 00:59 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