![]() |
5 Checkboxen checken nicht richtig!!!
Sers Delphi-Programmierer,
Zu meinem Problem ich hab 5 Checkboxen auf einer Seite eingerichtet. Es soll folgendes passieren, wenn einer von den ersten 4 Checkboxen angekickt wird, soll Checkbox 5 disabled werden. Wird Checkbox 5 angeklickt sollen Checkbox 1-4 disabled werden. Das hab ich bisher geschaft, aber wenn man gleichzeitig Checkbox 1 & 2 z.b. anklickt dann den Hacken bei Checkbox 2 wieder rausnimmt ist Checkbox 5 unerwartet aktiviert. Andere Komponenten möchte ich in meinem Fall bitte nicht verwenden! Mein Quellcode sieht so aus:
Delphi-Quellcode:
if Checkbox1.checked then
Checkbox5.enabled := False else Checkbox5.enabled := True;
Delphi-Quellcode:
Danke schon mal im voraus!!
Procedure Checkbox5click(Sender: TObject);
begin if Checkbox5.checked then begin Checkbox1.enabled := False; Checkbox1.checked := False; end else Checkbox1.enabled := True; if Checkbox5.checked then begin Checkbox2.enabled := False; Checkbox2.checked := False; end else Checkbox2.enabled := True; if Checkbox5.checked then begin Checkbox3.enabled := False; Checkbox3.checked := False; end else Checkbox3.enabled := True; if Checkbox5.checked then begin Checkbox4.enabled := False; Checkbox4.checked := False; end else Checkbox4.enabled := True; Mit freundlichen Grüßen Kumar89 :thumb: |
Re: 5 Checkboxen checken nicht richtig!!!
Hallo
Zitat:
Zitat:
Delphi-Quellcode:
Vielleicht habe ich dein Problem auch nicht ganz verstanden.
CheckBox5.Enabled := not CheckBox1.Checked;
Den unteren Code kannst du auch mit weniger if-Abfragen versehen:
Delphi-Quellcode:
Und wenn du die Komponenten noch vernünftig benennst, wird es noch übersichtlicher.
if CheckBox5.Checked then
begin CheckBox1.Enabled := false; CheckBox1.Checked := false; CheckBox2.Enabled := false; CheckBox2.Checked := false; // ... end else begin CheckBox1.Enabled := true; CheckBox2.Enabled := true; // ... end; Das hilft dir bei deinem aktuellen Problem nicht weiter, aber allgemein hoffentlich. Grüße, Matze |
Re: 5 Checkboxen checken nicht richtig!!!
Ich checks auch nicht richtig... :stupid:
Kannst du das eventuell nochmal so erklären, dass das etwas verständlicher wird? Im unteren Quellcode reicht übrigens eine einzige If-Abfrage.
Delphi-Quellcode:
Procedure Checkbox5click(Sender: TObject);
begin if Checkbox5.checked then begin Checkbox1.enabled := False; Checkbox1.checked := False; Checkbox2.enabled := False; Checkbox2.checked := False; Checkbox3.enabled := False; Checkbox3.checked := False; Checkbox4.enabled := False; Checkbox4.checked := False; end else begin Checkbox1.enabled := True; Checkbox2.enabled := True; Checkbox3.enabled := True; Checkbox4.enabled := True; end |
Re: 5 Checkboxen checken nicht richtig!!!
Dein Quelltext widerspricht der Problembeschreibung. Kannst Du das noch einmal genauer erläutern?
|
Re: 5 Checkboxen checken nicht richtig!!!
Hi,
Wenn du dir überlegt hast was du erreichen willst und es auch so beschreiben kannst, dass man es versteht kann dir sicher geholfen werden! Was soll welche Checkbopx exakt bewirken? Wie sind die Checkboxen zu Anfanggesetzt? Enabled,disabled oder wie? Also erst überlegen dann posten! Grüsse Rainer |
Re: 5 Checkboxen checken nicht richtig!!!
genau nach deiner Definition/Beschreibung des ersten Posts,
Delphi-Quellcode:
mit einem/zwei Problemen ... ist nix gewählt (checked), dann sind alle CheckBoxen aus (disabled)
Procedure Checkbox1_5click(Sender: TObject);
begin CheckBox1.Enabled := CheckBox5.Checked; CheckBox2.Enabled := CheckBox5.Checked; CheckBox3.Enabled := CheckBox5.Checked; CheckBox4.Enabled := CheckBox5.Checked; CheckBox5.Enabled := CheckBox1.Checked or CheckBox2.Checked or CheckBox3.Checked or CheckBox4.Checked; end; und man kann niemals etwas anklicken und somit etwas enablen. und es wiederspricht auch deinem Beispielcode dieses Posts oder meinstest du es so? - ist irgendwas aus 1 - 4 gewählt, dann 5 aus - ist 5 gewählt, dann 1 - 4 aus
Delphi-Quellcode:
Procedure Checkbox1_5click(Sender: TObject);
begin CheckBox1.Enabled := not CheckBox5.Checked; CheckBox2.Enabled := not CheckBox5.Checked; CheckBox3.Enabled := not CheckBox5.Checked; CheckBox4.Enabled := not CheckBox5.Checked; CheckBox5.Enabled := not (CheckBox1.Checked or CheckBox2.Checked or CheckBox3.Checked or CheckBox4.Checked); end; |
Re: 5 Checkboxen checken nicht richtig!!!
Tut mir Leid ich hab disabled und enabled verwechselt.
Mein Fehler!! Ich editiers schnell!!! |
Re: 5 Checkboxen checken nicht richtig!!!
Zitat:
|
Re: 5 Checkboxen checken nicht richtig!!!
Verwende eine OnClick-Procedure für alle 5 Checkboxen:
Delphi-Quellcode:
@himitsu: nö, ist falsch rum ;-)
Procedure Checkbox5click(Sender: TObject);
begin Checkbox5.enabled:= not (Checkbox1.checked or Checkbox2.checked or Checkbox3.checked or Checkbox4.checked); Checkbox1.enabled:= not Checkbox5.checked; Checkbox2.enabled:= not Checkbox5.checked; Checkbox3.enabled:= not Checkbox5.checked; Checkbox4.enabled:= not Checkbox5.checked; end; [Edit] vergiss meinen Einwand, ich hätte Deinen editierten Post auch bis zum Ende lesen sollen :wall: [/edit] |
Re: 5 Checkboxen checken nicht richtig!!!
Und noch 'ne Variante:
Delphi-Quellcode:
...
type TForm1 = class(TForm) CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; procedure CheckBox5Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private { Private-Deklarationen } Boxes: array[0..3] of TCheckBox; public { Public-Deklarationen } end; ... procedure TForm1.CheckBox1Click(Sender: TObject); begin Checkbox5.Enabled := not (Checkbox1.Checked or Checkbox2.Checked or Checkbox3.Checked or Checkbox4.Checked); if not Checkbox5.Enabled then Checkbox5.Checked := false; end; procedure TForm1.CheckBox5Click(Sender: TObject); var i: integer; begin for i := Low(Boxes) to High(Boxes) do begin Boxes[i].Enabled := not Checkbox5.checked; if not Boxes[i].Enabled then Boxes[i].Checked := false; end; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin Boxes[0] := Checkbox1; Boxes[1] := Checkbox2; Boxes[2] := Checkbox3; Boxes[3] := Checkbox4; for i := Low(Boxes) to High(Boxes) do Boxes[i].OnClick := CheckBox1Click; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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 by Thomas Breitkreuz