PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kylix - Schleife



Brujah
09-11-2001, 10:00
Hallo Leute,

ich habe mir vorgestern Kylix von der Borland Seite gezogen und bin restlos begeistert davon. Mein erstes Programm nimmt auch langsam Gestalt an. Jetzt habe ich aber schon die erste Frage dazu. Ich habe einen haufen Buttons definiert, die ich nun in einer Schleife verändern möchte, also von Unchecked auf Checked setzen. Bisher sieht das so aus:
Form1.Button1.Checked := true;
Form1.Button2.Checked := true;
Form1.Button3.Checked := true;

Kann ich das auch in einer Schleife machen ?
(Sonst wird mein Code so riesig ...)

Markus:confused:

stefan77
09-11-2001, 17:15
Unter C++ würden man ein Feld von Button anlegen: Button button[3], welches man den mit einem Index aublaufen kann.
for(i=0; i<3; i++){
button[i].doSomething();
}

Brujah
09-11-2001, 19:46
Okay, aber das ist irgendwie nicht so einfach ...
Ich habe die Elemente in meinem Form definiert. Also mit Namen versehen.
Wie kann ich mir denn überhaupt die Definitionen dazu anschauen ?
(Ah habe ich gerader ausgefunden. Man kann in der Ansicht auf Source anzeigen umschalten)
Aber das bringt mir jetzt auch nix, ist ja für jeden Button ein eigenes Objekt deklariert...

Ich verstehs noch net ...

ponzellus
09-11-2001, 22:25
Ich hab bei mir zwar Kylix nicht installiert, aber Delphi in Windows *duck* ;)
da packst du die buttons entweder in eine TObjectList oder du machst das so (is allerdings nicht sehr fein, vor allem, wenn du ziemlich viele Komponenten auf deinem Formular hast):

for i := 0 to Form1.ComponentCount-1 do
begin
if Form1.Components[i] is TButton then
TButton(Form1.Components[i]).enabled := true;
end;

btw. was meinst du mit checked?
TButton hat (auf jeden fall in delphi) keine Property "checked", deswegen hab ich einfach mal "enabled" genommen ;)

Hans-Georg Normann
10-11-2001, 14:19
Die lösunfg von Ponzellus sollte eigentlich funktionieren. Ich habe mal so etwas gesehen wie: findobject('ObjectName')..............

Kann's aber hier nicht nachschlagen weil wegen übemäßigen Lizenzgebühren verarmt und auf Linux............ :D Hoffe es hilft trotdem weiter.

Hans

Brujah
13-11-2001, 13:39
Okay, habe das jetzt soweit fertig.
Danke für eure Hilfe.