Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Alle Elemente einer GroupBox auf enabled=false setzen
Anonymous - Di 12.08.03 13:01
Titel: Alle Elemente einer GroupBox auf enabled=false setzen
Moin!
Habe eine CheckBox und eine GroupBox mit vielen Elementen.
Wenn in der CheckBox ein Haken gesetzt wurde, soll die GroupBox mit allen Elementen enabled=true sein, anderfalls enabled=false.
Muss ich das nu so machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if (CheckBox1.Checked) then begin GroupBox1.Enabled := True; Button2.Enabled := True; Button3.Enabled := True; ... end else begin GroupBox1.Enabled := False; Button2.Enabled := False; Button3.Enabled := False; ... end; |
Oder kann ich das einfacher schneller machen? So in etwa
for i := 0 to 10 do GroupBox1.Items[i].enabled := false; gehts ja nicht, weil die BroupBox keine derartige Eigentschaft besitzt.
Sicher, ich müsste einfach nur
GroupBox1.Enabled := False; schreiben, aber dann sind alle Elemente wie auf True, auch wenn nichts mehr passiert beim Klicken etc.
THX!
Moderiert von
Tino: Delphi-Tags hinzugefügt.
kasi - Di 12.08.03 14:08
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin for i := 0 to GroupBox1.ControlCount-1 do GroupBox1.Controls[i].Enabled := not GroupBox1.Controls[i].Enabled; end; |
KASI
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Anonymous - Di 12.08.03 15:15
Dein Code funtz zwar, doch erreiche ich dasselbe mit dem einen Befehl GroupBox1.Enabled := False.
Ich will aber, dass die Elemente bei Enabled := False so aussehen, wie z.B. ein normaler Button auf der Form (nicht in einer GroupBox!), wenn er auf Enabled := False steht.
Geht das?
Tryer - Di 12.08.03 15:23
Delphi-Quelltext
1: 2:
| for i := 0 to Pred(GroupBox1.ControlCount) do GroupBox1.Controls[i].Enabled := False; |
Arbeitet doch gänzlich anders als GroupBox1.Enabled := False..
Während ersteres dafür sorgt das alle Buttons Disabled aussehen sieht bei GroupBox.Enabled nur der Rahmen Disabled aus..
Vielleicht hab ich noch nicht verstanden was deaktiviert aussehen soll.. versuch´s bitte nochmal zu erklären ;)
MfG,
Tryer
Anonymous - Di 12.08.03 15:41
Bin ich zu blöde? Bei mir sieht dein Code beim "Abspielen" genau so aus wie der von kasi oder mein GroupBox1.Enabled := False.
Mach ich was falsch?
Also was ich mit deaktiviert meine ist Folgendes: Wenn du nur einen Button auf der Form hast und der ist deaktiviert, dann ist die Caption auf ihm grau, right? Das will ich auch mit allen Elementen in der GroupBox haben.
Als Beispiel aus Win XP: IE -> Favoriten -> Zu F. hinzufügen -> Offline verfügbar machen ankreuzen -> dann wird "Anpassen" aktiviert, right? So mein ich das. Jetzt klar ausgedrückt?
Tryer - Di 12.08.03 15:44
Genau das passiert wenn Du mit GroupBox.Controls[] arbeitest.. zumindest unter W2K.
Die GroupBox selber solltest du auf Enabled lassen, liegt´s vielleicht daran?
MfG,
Tryer
Anonymous - Di 12.08.03 18:39
Ich ralls nicht :oops:
So sieht mein Code aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TFSetting.CheckBox1Click(Sender: TObject); var i: Integer; begin if (CheckBox1.Checked) then for i := 0 to GroupBox1.ControlCount - 1 do GroupBox1.Controls[i].Enabled := True else for i := 0 to GroupBox1.ControlCount - 1 do GroupBox1.Controls[i].Enabled := False; end; |
Die CheckBox ist außerhalb der GroupBox und innerhalb der GroupBox sind 2 Buttons und eine Memo (nur zum Ausprobieren gedacht!). Die GroupBox ist auf Enabled un ddie anderen Elemente auch alle.
Habe Delphi 6 und Win XP.
Bei mir klappt mit diesem Code nichts. Ich kann Haken setzen wie ich will, die Elemente sind immer auswählbar.
NUR mit GroupBox1.Enabled := False kann ich bei fehlendem Haken die Elemente nicht anklicken etc.
Warum ist das so? :(
Phantom1 - Di 12.08.03 19:35
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TFSetting.CheckBox1Click(Sender: TObject); var i: Integer; begin for i := 0 to GroupBox1.ControlCount - 1 do GroupBox1.Controls[i].Enabled := CheckBox1.Checked; end; |
Sollte eigentlich gehen, sind deine Button etc auch wirklich mit der Groupbox verbunden? schau mal in der objekthierarchie die links angezeigt wird nach!
Anonymous - Di 12.08.03 19:40
Also ein wenig Verstand müsst ihr mir bitte zugestehen :wink:
Ja, sie sind der GB untergeordnet.
Und dein Code bewirkt, wie die anderen vor mir, nichts :cry:
Woran liegts!?
Anonymous - Di 12.08.03 20:00
:oops: Hab mal wieder einen Fehler gemacht *schäm*
Es liegt daran, dass es mehre Forms sind. Wenn ich ein Projekt mit nur einer Form habe, dann klappts wunderbar!
Bei mir sind es aber 2 Forms und auf der 2. sind die GP mit den Elementen. Was muss ich da anders machen, dass es auch klappt?
Anonymous - Mi 13.08.03 11:16
Habs jetzt hinbekommen!
Habe einfach mal alle Objekte auf der Form gelöscht und neugemacht, nichts anders, nur nochmal alle neu drauf! Und schon klappts!
Warum ist mir auch egal, aber es geht ... :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!