Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrere Steuerelemente gleichzeitig ansprechen ... (https://www.delphipraxis.net/124671-mehrere-steuerelemente-gleichzeitig-ansprechen.html)

psd-sign 22. Nov 2008 20:09


Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Ich habe in einem Formular 8 Steuerlemente gleichen Typs ... (z.B. TShape)

wie bekomme ich es hin, dass ich einmal alle Steuerlemente in eine "Menge" packe, sodass ich die Menge dieser Steuerelemente ansprechen kann? Ganz praktisch:
1 Click & Alle Steuerelemente bekommen die Farbe clRed ...

Muss ich mit Array arbeiten? Oder bin ich auf dem Holzweg?

DeddyH 22. Nov 2008 21:02

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Array, TObjectList, mit FindComponent() durchgehen... wobei ich die beiden erstgenannten Möglichkeiten besser finde.

psd-sign 22. Nov 2008 21:04

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Zitat:

Zitat von DeddyH
Array, TObjectList, mit FindComponent() durchgehen... wobei ich die beiden erstgenannten Möglichkeiten besser finde.

DANKEEEEE!!!!

Hier der Code:
Delphi-Quellcode:
procedure TForm1.TBinChange(Sender: TObject);
var
//Datentyp aus der 'Contnrs' ... erstellt eine Menge
//aus Steuerelementen (Ein Array mit Index 0,1,...,x)
Dioden: TObjectList;
i: Integer;

begin
//Eine Objektliste aus den Shapes S1,..,S8 erstellen,
//damit alle gleichzeitig angesprochen werden können.
Dioden:=TObjectList.Create;
Dioden.Add(S1);
Dioden.Add(S2);
Dioden.Add(S3);
Dioden.Add(S4);
Dioden.Add(S5);
Dioden.Add(S6);
Dioden.Add(S7);
Dioden.Add(S8);
If length(TBin.Text)>8 then
begin
  for i:=0 to 7 do
  begin
    (Dioden.Items[i] as TShape).enabled:=false;
    (Dioden.Items[i] as TShape).Brush.Color:=clblack;
  end;
end
else
begin
  for i:=0 to 7 do
  begin
    (Dioden.Items[i] as TShape).enabled:=true;
    //Zuweisung der Farben
  end;
end;
end;

toms 22. Nov 2008 21:11

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
...und wo gibst du die TObjectList wieder frei :gruebel:

psd-sign 22. Nov 2008 21:52

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Zitat:

Zitat von toms
...und wo gibst du die TObjectList wieder frei :gruebel:

freigeben? Wozu?

DeddyH 23. Nov 2008 10:22

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Damit keine Speicherlecks entstehen.

DeddyH 23. Nov 2008 10:29

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Es ging uns auch nicht um die Objekte, sondern die Liste an sich.

[edit] Na toll, löscht der während meines Postings einfach seinen Beitrag, nachher heißt es, ich würde pushen :tongue: [/edit]

SirThornberry 23. Nov 2008 10:41

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Sorry, da hab ich nach dem Absenden mitbekommen das ich müll geschrieben habe und es gar nicht um die Objekte sondern die Objektliste ging. In meiner Hoffnung das es noch niemand gesehen hat, hab ich es dann schnell gelöscht *Schande über mich* :duck:

Achja, Pushen ist erst nach 24 Stunden erwünscht :!: :wink:

SirTwist 23. Nov 2008 11:07

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Guten Morgen,
Zitat:

Zitat von toms
...und wo gibst du die TObjectList wieder frei :gruebel:

Wozu eigentlich eine TObjectList und keine simple TList?

Gruß,
SirTwist

DeddyH 23. Nov 2008 11:28

Re: Mehrere Steuerelemente gleichzeitig ansprechen ...
 
Wenn er Objekte ablegen will, wieso soll er keine TObjectList nehmen?


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