![]() |
Ja nein Checkbox
Hallo möchte eine ja nein Abfrage mit Checkboxen realisieren.
Ich weiss das es radio buttons gibt. Muss es aber für mein Projekt als Checkboxen realisieren. Mein Problem ist nun folgendes: Wenn ich mit der Tastatur ein der Checkboxen auswähle und <Leertaste> drücke klappt alles super. Wenn ich jedoch mit der Maus auf eins der Checkboxen klicke kann ich auf einmal die Abfragt mit ja und Nein gleichzeitig beantworten, was ja nicht der Sinn einer Ja Nein Abfrage ist. Mit der aktuellen Version habe ich ein Überlauf den ich nicht verstehe ja ich nur Checkboxen ändere und keine Arrays oder so fülle wo es ein Überlauf geben kann Quellcode
Delphi-Quellcode:
procedure TForm1.checkjaKeyPress(Sender: TObject; var Key: Char);
begin if not(checkja.Checked=true) then checknein.Checked:=false else checknein.Checked:=true; end; procedure TForm1.checkneinKeyPress(Sender: TObject; var Key: Char); begin if not(checknein.Checked=true) then checkja.Checked:=false else checkja.Checked:=true; end; procedure TForm1.checkjaClick(Sender: TObject); begin if (checkja.Checked=true) then begin checkja.Checked:=false; checknein.Checked:=true; end else begin checkja.Checked:=true; checknein.Checked:=false; end; end; procedure TForm1.checkneinClick(Sender: TObject); begin if (checknein.Checked=true) then begin checknein.Checked:=false; checkja.Checked:=true end else begin checknein.Checked:=true; checkja.Checked:=false; end; end; Ich hoffe Ihr könnt mir helfen Mfg Robert |
Re: Ja nein Checkbox
mach doch in die onChange ereignisse rein, das das jeweils andere => not cbself.checked ist(self steht für ja/nein)
EDIT: oh, gibt ja garkein OnChange.. wie dumm von mir.. EDIT2: Versuch das mal:
Delphi-Quellcode:
procedure TtfMain.CheckBox1Click(Sender: TObject);
begin CheckBox2.Checked:=not CheckBox1.Checked; end; procedure TtfMain.CheckBox2Click(Sender: TObject); begin CheckBox1.Checked:=not CheckBox2.Checked; end; |
Re: Ja nein Checkbox
Zitat:
|
Re: Ja nein Checkbox
Zitat:
Zitat:
|
Re: Ja nein Checkbox
Moin Robert,
das Zuweisen eines Wertes an die Eigenschaft Checked löst das OnClick-Ereignis aus, dadurch bekommst Du eine Endlosschleife, was dann zum Überlauf führt. Warum müssen es unbedingt Checkboxen sein? Damit präsentierst Du dem Anwender Controls, die sich nicht so verhalten, wie er es erwartet. |
Re: Ja nein Checkbox
Hai binio,
das ist so eine kleine Stolperfalle bei den Checkboxen. Das Ereigniss OnClick wird nicht etwa dann ausgelöst wenn man mit der Maus auf die CheckBox klickt sondern immer dann wenn sich die Eigenschaft .Checked ändert. Egal ob dies über die Maus, über die Tastatur oder im Programmcode erfolgt. |
Re: Ja nein Checkbox
Also ich hab meine Version ausprobiert und die funzt, viel spass damit.
|
Re: Ja nein Checkbox
Wau Jungs dankeschön gleich so viele Antworten auf einmal ;)
Ich muss es als CheckBoxen realisieren weil es für ein Blindenprojekt ist und Virgo(Software) Radio Buttons falsch an die Blinde ausgibt. Das Irritiert die Blinden und daher die Checkbox ;) Und danke auch für die schöne Überlauf erklärung ;) Hab das OnClick Ereigniss auch so verstanden das es nur bei Mausclicks ausgerufen wird und nicht bei jeder änderung ;) Die hätten das OnChange nennen sollen ;) Ok danke vielmal Ihr habt mir sehr viel Weitergeholfen ;) Thx Robert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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-2025 by Thomas Breitkreuz