AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

5 Checkboxen checken nicht richtig!!!

Ein Thema von kumar89 · begonnen am 25. Nov 2009 · letzter Beitrag vom 25. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
kumar89
(Gast)

n/a Beiträge
 
#1

5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:35
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:
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;
Danke schon mal im voraus!!

Mit freundlichen Grüßen

Kumar89
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:46
Hallo

Zitat von kumar89:
[...] aber wenn man gleichzeitig Checkbox 1 & 2 z.b. anklickt dann den Hacken bei Checkbox 2 rausnimmt ist Checkbox 5 aktiviert.
Zitat von kumar89:
Delphi-Quellcode:
  if Checkbox1.checked then
     Checkbox5.enabled := False else
     Checkbox5.enabled := True;
Du prüfst hier nur auf CheckBox1. Sofern diese angeklickt ist, ist CheckBox5 aktiviert. Unabhängig, ob die anderen CheckBoxen angeklickt sind oder nicht. Übrigens kannst du den Code auch kürzer schreiben:

CheckBox5.Enabled := not CheckBox1.Checked; Vielleicht habe ich dein Problem auch nicht ganz verstanden.

Den unteren Code kannst du auch mit weniger if-Abfragen versehen:
Delphi-Quellcode:
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;
Und wenn du die Komponenten noch vernünftig benennst, wird es noch übersichtlicher.

Das hilft dir bei deinem aktuellen Problem nicht weiter, aber allgemein hoffentlich.

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:48
Ich checks auch nicht richtig...
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
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:48
Dein Quelltext widerspricht der Problembeschreibung. Kannst Du das noch einmal genauer erläutern?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#5

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:55
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:57
genau nach deiner Definition/Beschreibung des ersten Posts,
Delphi-Quellcode:
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;
mit einem/zwei Problemen ... ist nix gewählt (checked), dann sind alle CheckBoxen aus (disabled)
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
kumar89
(Gast)

n/a Beiträge
 
#7

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 13:57
Tut mir Leid ich hab disabled und enabled verwechselt.

Mein Fehler!! Ich editiers schnell!!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 14:06
Zitat von kumar89:
Tut mir Leid ich hab disabled und enabled verwechselt.
dann dürfte mein zueditiertes nun passen (einfach bei allen in OnClick eintragen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#9

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 14:09
Verwende eine OnClick-Procedure für alle 5 Checkboxen:

Delphi-Quellcode:
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;
@himitsu: nö, ist falsch rum
[Edit] vergiss meinen Einwand, ich hätte Deinen editierten Post auch bis zum Ende lesen sollen [/edit]
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: 5 Checkboxen checken nicht richtig!!!

  Alt 25. Nov 2009, 14:13
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
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