[delphi]checkbox en radiobuttons doen niet goed

Pagina: 1
Acties:

  • Tusk
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:57

Tusk

Sticky Bomb likes you!

Topicstarter
ik heb 3 checkboxen

met dees code bij de antwoord button:
code:
1
2
3
4
5
begin
if checkbox1.checked=true and checkbox2.checked=true and
checkbox3.checked=true then  edit1.text:=('JAAAAAAH !!! helemaal goed !!')
else edit1.text:=('hmmm niet goed...denk er nog us over na')
end;

het is de bedoeling als dat je ze allemaal hebt aangeklikt dat ie dan zegt...jaaah helemaal goed...als je iets anders doet dat ie dan zegt...denk er us over na

nou doet ie dit...check je er 1...zegt ie jaaaah :(
check je er 2 zegt ie denk er over na :)
check je er 3 zegt ie jaaah :)

---------
next:
3 radiobuttons...
code:
1
2
if RadioButton1.enabled=true then Edit1.text:=('psies, je hebt het helemaal goed !')
else edit1.text:=('FOUT ! dat kan toch beter')

je snapt de bedoeling denk ik wel
maar hij zegt altijd psies, je hebt het goed :(
ook als je nix aan klikt en op antwoordknop drukt :(

in de help stond er nix over dus vandaar dat ik het hier ff vraag


*I asked for a shotgun, not an anti-aircraft!
- shotgun? that must be the guns that fire a shot....
*yes.. you must be the brains


Verwijderd

Ok, daar gaan we dan (dit is overigens zeker wel in de help te vinden, maar goed).
code:
1
2
3
4
5
6
7
procedure TForm1.btnAntwoordClick(Sender: TObject);
begin
  if (Checkbox1.Checked) and (Checkbox2.Checked) and (Checkbox3.Checked) then
    Edit1.Text := 'Alle 3 checkboxes aangevinkt.'
  Else
    Edit1.Text := 'Niet alle 3 checkboxes aangevinkt.';
end;

Wat je met het 2e stukje code controleert is alleen of de radiobutton ge-enabled is (d.w.z. de radiobutton is niet gegrijsd en de gebruiker kan er op klikken). Ook de radiobutton heeft de checked property waarmee je kunt kijken of het keuzerondje 'zwart' is (m.a.w. geselecteerd).

Suc6

  • Tusk
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:57

Tusk

Sticky Bomb likes you!

Topicstarter
hej, het werkt, bedankt !
dat =true moest dus weg...
thx !


*I asked for a shotgun, not an anti-aircraft!
- shotgun? that must be the guns that fire a shot....
*yes.. you must be the brains


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 17:08

mulder

ik spuug op het trottoir

Op dinsdag 19 februari 2002 16:26 schreef Tusk het volgende:
dat =true moest dus weg...
Eeuh..nee niet perse

oogjes open, snaveltjes dicht


  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Dit geld overigens voor alle if statements en is niet specifiek voor checkboxes het geval,,, denk bijvoorbeeld maar aan:

if x=1 and y=3 or a=2

if x=1 and (y=3 or a=2)

if ((x=1) and (y=3)) or (a=2)

als je gaat rekenen in een if statement moeten er ook haakjes omheen

if (X+Y)=2

SNAPPIE!!!!

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • Tusk
  • Registratie: Juni 2001
  • Laatst online: 11-09 08:57

Tusk

Sticky Bomb likes you!

Topicstarter
ik snap het
thx !!


*I asked for a shotgun, not an anti-aircraft!
- shotgun? that must be the guns that fire a shot....
*yes.. you must be the brains


  • tomato
  • Registratie: November 1999
  • Niet online
marenk_vos: denk bijvoorbeeld maar aan:

if x=1 and y=3 or a=2
De verwarring kan nog verder gaan. Kijk eens naar het volgende:
code:
1
2
3
4
5
6
7
var = false
variabele = false

if (var = true and variabele)
   print "true"
else
   print "false"

In sommige talen zal dit true geven, in sommige talen false. Afhankelijk van de operator precedence (wat wordt eerst geevalueerd, een '=' operator of een 'and' operator?).

Kijk hiermee dus uit, gebruik altijd haakjes. In mijn voorbeeld wordt waarschijnlijk het volgende bedoeld:
code:
1
2
3
4
if ((var = true) and variabele)
   print "true"
else
   print "false"

  • Tomatoman
  • Registratie: November 2000
  • Nu online

Tomatoman

Fulltime prutser

Het resultaat van
CheckBox1.Checked
is een boolean waarde (True of False), dus
if CheckBox1.Checked = True then ...
kun je eenvoudiger schrijven als
if CheckBox1.Checked then ...

Vergelijk dit maar eens:
ChecksHebbenZelfdeStatus := CheckBox1.Checked = CheckBox1.Checked;
Als je bedenkt dat
CheckBox1.Checked = CheckBox1.Checked
een boolean waarde oplevert, begrijp je wat er staat. Duidelijker geschreven:
ChecksHebbenZelfdeStatus := (CheckBox1.Checked = CheckBox1.Checked);

Een goede grap mag vrienden kosten.


Verwijderd

Op dinsdag 19 februari 2002 17:56 schreef tomatoman het volgende:
ChecksHebbenZelfdeStatus := CheckBox1.Checked = CheckBox1.Checked;
Dit wordt vertaald naar:
ChecksHebbenZelfdeStatus := True = True;
Of:
ChecksHebbenZelfdeStatus := False = False;
En is dus altijd gelijk aan:
ChecksHebbenZelfdeStatus := True;
Als je bedenkt dat
CheckBox1.Checked = CheckBox1.Checked
een boolean waarde oplevert, begrijp je wat er staat. Duidelijker geschreven:
ChecksHebbenZelfdeStatus := (CheckBox1.Checked = CheckBox1.Checked);
Dikke onzin dus deze code want dit zal ALTIJD True geven: immers:
(0=0)=True
(1=1)=True
(2=2)=True
enz.

Wat bedoel je dus met dit verhaal?

  • Tomatoman
  • Registratie: November 2000
  • Nu online

Tomatoman

Fulltime prutser

Shit, je hebt helemaal gelijk. Ik bedoelde:

Vergelijk dit maar eens:
ChecksHebbenZelfdeStatus := CheckBox1.Checked = CheckBox2.Checked;
Als je bedenkt dat
CheckBox1.Checked = CheckBox2.Checked
een boolean waarde oplevert, begrijp je wat er staat. Duidelijker geschreven:
ChecksHebbenZelfdeStatus := (CheckBox1.Checked = CheckBox2.Checked);

Een goede grap mag vrienden kosten.

Pagina: 1