Autor Beitrag
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 12.08.03 13:01 
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:
ausblenden 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 user profile iconTino: Delphi-Tags hinzugefügt.
kasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D5 Ent
BeitragVerfasst: Di 12.08.03 14:08 
ausblenden 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 user profile iconTino: Delphi-Tags hinzugefügt.
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Di 12.08.03 15:23 
ausblenden 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
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: 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
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 12.08.03 18:39 
Ich ralls nicht :oops:

So sieht mein Code aus:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Di 12.08.03 19:35 
ausblenden 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!
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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!?
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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?
D0P3 F!$H
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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:
Ist die Frage beantwortet? Das Problem gelöst?

Dann klicke hier, um das Thema entsprechend zu markieren!