Seite 1 von 1

Checkboxstatus

Verfasst: 22.07.2008 14:29
von DrNo
Hallo,
Ich möchte bei Knopfdruck den Status (0/1) eines CheckBoxGadgets abrufen. Das sieht bei mir so aus:

Code: Alles auswählen

If Event = #PB_Event_Gadget
       If EventGadget() = 5
         DisableGadget(2, 1)
         DisableGadget(3, 1)
         DisableGadget(4, 1)
         DisableGadget(5, 1)
         stadt$ = GetGadgetText(2)
         If stadt$ = "1"
            MessageRequester("Info", "Erfolgreich!")
           Else
            MessageRequester("Info", "Dann halt net")
         EndIf
       EndIf
    EndIf
Laut Handbuch gibt GetGadgetText dann 1 wenn aktiviert und 0 wenn nicht zurück.

Code: Alles auswählen

stadt$ = GetGadgetText(2)
         If stadt$ = "1"
So geht es jedenfalls nich...wie führe ic hdann eine Aktion aus nur wenn der Gadget gecheckt ist?

Verfasst: 22.07.2008 14:39
von ts-soft
> Laut Handbuch gibt GetGadgetText dann 1 wenn aktiviert und 0 wenn nicht zurück.
Das will ich mal so nicht glauben :wink:
GetGadgetState wird in PB für Zustände genommen, bzw. wenns mal mehr
ist GetGadgetAttribute. GetGadgetText sollte immer den Text zurückgeben!

Verfasst: 22.07.2008 14:54
von DrNo
Hä?
Das ist mir jetzt ein bisschen unerklärlich...
Ich hab GetGadgetText durch GetGadgetState ersetzt dass dann auch "laut Handbuch" unterstütz wird, also so:

Code: Alles auswählen

If Event = #PB_Event_Gadget
       If EventGadget() = 5
         DisableGadget(2, 1)
         DisableGadget(3, 1)
         DisableGadget(4, 1)
         DisableGadget(5, 1)
         stadt$ = GetGadgetState(2) 
         If stadt$ = "1"
            MessageRequester("Info", "Erfolgreich!")
           Else
            MessageRequester("Info", "Dann halt net")
         EndIf
       EndIf
    EndIf
Allerdings kommt dann der Fehler
"Cant write numeral value into string variable."
Was mach ich jetzt schonwieder falsch?

Sorry wenn ich mich so dumm anstelle, aber ich mach nur das was im Handbuch steht.

Verfasst: 22.07.2008 14:58
von ts-soft
GetGadgetState gibt natürlich einen numerischen Wert zurück (#True oder
#False) und keinen String.
Also den Variablentyp ändern, oder den Wert in einen String umwandeln,
was eigentlich in diesem Fall kaum sinn macht.

Code: Alles auswählen

         stadt.l = GetGadgetState(2)
         If stadt = 1
            MessageRequester("Info", "Erfolgreich!")
           Else
            MessageRequester("Info", "Dann halt net")
         EndIf 
Gruß
Thomas

Verfasst: 22.07.2008 15:04
von DrNo
Okay danke, dass klappt.

Jetzt muss ich aber noch Fragen (ich frags mich schon länger) was die Punkte zwischen z.B. stadt.1 oder result.s immer bedeuten.

Danke!

grüße DrNo

Verfasst: 22.07.2008 15:07
von ts-soft
.s ist dasselbe wie $, so wird ein String gekennzeichnet.
.l = long, .w = word, .b = byte, .q = quad, .f = float und .d = double

Vielleicht mal in der Hilfe unter Datentypen nachlesen und bei der
Gelegenheit gleich angewöhnen, diese Variablen zu deklarieren und
EnableExplicit zu aktivieren. Findeste alles in der Hilfe

Gruß
Thomas