Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Button.Enabled := True (Sehr oft...) (https://www.delphipraxis.net/101969-button-enabled-%3D-true-sehr-oft.html)

Tommy1988 21. Okt 2007 15:17


Button.Enabled := True (Sehr oft...)
 
Hallo,
ich habe folgenden Beispielcode:
Delphi-Quellcode:
TBXButton1.Enabled := True;
TBXButton3.Enabled := True;
TBXButton2.Enabled := True;
TBXButton9.Enabled := True;
TBXButton4.Enabled := True;
TBXButton5.Enabled := True;
TBXButton6.Enabled := True;
Gibt es die Möglichkeit, DIESE Buttons in EINER Anweisung zu "Enablen"?

Matze 21. Okt 2007 15:18

Re: Button.Enabled := True (Sehr oft...)
 
Hallo,

suche mal nach Delphi-Referenz durchsuchenFindComponent.

mkinzler 21. Okt 2007 15:19

Re: Button.Enabled := True (Sehr oft...)
 
In einer nicht aber du kannst eine Schleife nehmen und dann mit .FindComponent per Namen suchen und Eigenschaft setzen.

hoika 21. Okt 2007 15:19

Re: Button.Enabled := True (Sehr oft...)
 
Hallo,

Delphi-Quellcode:
Btn: TButton;
i : Integer;

for i:= 1 to Viele do
begin
  Btn:= TButton(FindComponent('TBXButton'+IntToStr(i)));
  if Btn<>NIL then Btn.Enabled:= True;
end;

Heiko

mirage228 21. Okt 2007 15:24

Re: Button.Enabled := True (Sehr oft...)
 
Wenn Du diese Prozedur öfters ausführst, wäre es sinnvoller die Buttons einmal mit FindComponent zu suchen und dann einer TObjectList oder einem Array hinzuzufügen und bei weiteren durchläufen letztere(s) zu benutzen. Bei vielen Aufrufen wird das um einiges schneller sein, als jedes mal FindComponent aufzurufen.

mfG
mirage228

DeddyH 21. Okt 2007 16:03

Re: Button.Enabled := True (Sehr oft...)
 
Genau, oder das Components-Array einmalig durchlaufen und prüfen, ob es sich um eine der zu ändernden Komponenten handelt.

hathor 21. Okt 2007 19:42

Re: Button.Enabled := True (Sehr oft...)
 
Delphi-Quellcode:
var
 a: array [1,2,3,4,5,6,9] of Integer;
 i: Integer;

for I:=0 to ControlCount-1 do
  if Controls[I] is TButton and i is in a then // nicht getestet !
  TButton(Controls[I]).Enabled:=true;

SirTwist 21. Okt 2007 21:25

Re: Button.Enabled := True (Sehr oft...)
 
Zitat:

Zitat von Tommy1988
Gibt es die Möglichkeit, DIESE Buttons in EINER Anweisung zu "Enablen"?

Es gibt eine Freeware-Komponente EnableGroupbox. Wenn man bei dieser Komponente das Enable-Flag setzt/löscht überträgt sich das auf alle enthaltene Komponenten. Die Orginalkomponente ist von einer Groupbox abgeleitet, aber das kann man sich relativ leicht auf ein Panel umstricken.

Vielleicht hilft Dir das ja weiter.

Gruß,
SirTwist

hathor 21. Okt 2007 21:32

Re: Button.Enabled := True (Sehr oft...)
 
Delphi-Quellcode:
procedure TForm1.EnableGroupBox(AGroupBox: TGroupBox;
                                                     Enable: Boolean);
var
  i: Integer;
begin
  with AGroupBox do
  begin
    Enabled := Enable;
    For i := 0 to ControlCount - 1 do
      Controls[i].Enabled := Enable;
  end;
end;

sirius 22. Okt 2007 08:44

Re: Button.Enabled := True (Sehr oft...)
 
Zitat:

Zitat von SirTwist
Es gibt eine Freeware-Komponente EnableGroupbox. Wenn man bei dieser Komponente das Enable-Flag setzt/löscht überträgt sich das auf alle enthaltene Komponenten.

Man kann auch gleich das Panel aus der VCL nehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2      

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