Delphi-PRAXiS

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 Eine Eigenschaft von mehreren Objekten ändern (https://www.delphipraxis.net/26557-eine-eigenschaft-von-mehreren-objekten-aendern.html)

faux 25. Jul 2004 12:40


Eine Eigenschaft von mehreren Objekten ändern
 
Hallo...

Ich habe schon öfter so ein "Problem" gehabt:

Wenn man mehrere eigenschaften eines Objektes ändern will macht man das mit with.

Z.B:
Delphi-Quellcode:
with Canvas do
begin
  Pen.Color := $00ff00ff;
  Brush.Color := $00FF0000;
  MoveTo(15, 415);
  LineTo(Screen.Width div 2, 62);
end;
wie macht man das aber umgekert, wenn ich die selbe eigenschaft von mehreren Objekten ändern will?
also das vereinfachen:
Delphi-Quellcode:
Button1.Enabled := True;
Button2.Enabled := True;
Button3.Enabled := True;
Button4.Enabled := True;
Das wär ziemlich praktisch find, ich...

Danke schon mal, dass ihr mir warscheinlich sagen werdet, das das so kompliziert ist, dass ich es nicht kapieren werde... :lol:

StefanDP 25. Jul 2004 12:45

Re: Eine Eigenschaft von mehreren Objekten ändern
 
wenn die dinger alle ButtonX heißen dann kannst du das mit einer for-schleife und Hier im Forum suchenfincomponent machen

stefan

faux 25. Jul 2004 12:51

Re: Eine Eigenschaft von mehreren Objekten ändern
 
Hm...
Danke, aber ich finde unter Hier im Forum suchenfindcomponent leider nichts....
in welcher unit isn das? ich schau mal unter Delphi-Help nach....


:hi:

StefanDP 25. Jul 2004 13:27

Re: Eine Eigenschaft von mehreren Objekten ändern
 
ungefähr so:

du brauchst 5 buttons, das 5te bekommt folgende OnClick:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
  n: Integer;
begin
  for n := 1 to 4 do
    (FindComponent('Button' + IntToStr(n)) as TButton).Caption := 'Nummer: ' + IntToStr(n);
end;
stefan

Phoenix 25. Jul 2004 13:32

Re: Eine Eigenschaft von mehreren Objekten ändern
 
Also ich hatte das auch schonmal. Ich habe die Objekte einfach in eine TObjectList gepackt.

Delphi-Quellcode:
objList := TObjectList.Create;
objList.OwnsComponents := false;

objList.Add(Button1);
objList.Add(Button2);
objList.Add(Button3);
objList.Add(Button4);

{ und dann späeter... }

for i := 0 to (objList.Items.Count - 1) do
   TButton(objList.Items[i]).Enabled := false;


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