ich habe jetzt zwei Tage herumexperimentiert, weil die zwischen den OptionGadgets eingefügten Frame3DGadgets NICHT als Gruppenabschluß funktioniert haben.
Leider aber auch nicht eindeutig.
Nur das Gadget 1 hat beim Anklicken das Gadget 2 ausgeschaltet (Ausschließlichkeit).
Das Gadget 2 hingegen konnte wahlweise - wie gewünscht - hinzugeschaltet werden (Mehrfachauswahl).
Nun habe ich probeweise ein TextGadget dazwischengelegt, und sieh da, es funktioniert !Beim ersten Aufruf dieser Funktion wird eine Gruppe erstellt und alle folgenden Aufrufe von OptionGadget() fügen dieser Gruppe ein Gadget hinzu. Um die Gruppe abzuschließen, rufen Sie einfach einen anderen Gadgettyp auf. Diese Art von Gadgets sind sehr nützlich, da zur gleichen Zeit immer nur ein Gadget der Gruppe selektiert sein kann.
Gilt denn das Frame3DGadget im Sinne der Hilfe nicht als ein anderer Gadgettyp ?
An anderer Stelle im Programm funktioniert das Frame3DGadget als Gruppentrennung übrigens einwandfrei ?!
Code: Alles auswählen
Die Aufgabenstellung war : - Mehrfachauswahl
: - Zurücknahme einer Auswahl
Aus "Schönheitsgründen" (kann man streiten) habe ich mich aber für die OptionGadgets entschieden.
Hat jemand für solche "abartigen" Sonderwünsche eine Lösung, bezw. kann mir jemand zeigen, wo denn bei mir der Fehler liegt ?
Gruß Peter
Code: Alles auswählen
If OpenWindow(0,0,0,500,300,#PB_Window_Systemmenu," OptionGadgets mit Mehrfachauswahl ")
EndIf
If CreateGadgetList(WindowID())
Frame3DGadget(2, 20, 20, 440, 50, "", 0)
OptionGadget(3, 50, 100, 150, 20, " Gadget 1 ")
Frame3DGadget(4, 20, 80, 210, 50, "", 0)
; TextGadget(1, 50, 40, 400, 20, " Erst dieses TextGadget bewirkt die Gruppentrennung der OptionGadgets ")
OptionGadget(5, 270, 100, 125, 20, " Gadget 2 ")
Frame3DGadget(6,250, 80, 210, 50, "", 0)
Frame3DGadget(7, 20,140, 440, 50, "", 0)
TextGadget(8, 50,160, 400, 20, " Nur Gadget 1 wirkt gruppenabhängig mit Ausschließlichkeit, - - - Gadget 2 NICHT ! ")
Repeat
Select WaitWindowEvent()
Case #PB_EventCloseWindow
EventID = #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
EventID=EventGadgetID()
Select EventID
Case 3
If MitLfd = 0
MitLfd = 1
Dateitext00$ = " mit lfd Nummer "
SetGadgetState(3,1)
Debug EventID
Debug MitLfd
Debug MitNull
ElseIf MitLfd = 1
MitLfd = 0
Dateitext00$ = ""
SetGadgetState(3,0)
Debug EventID
Debug MitLfd
Debug MitNull
EndIf
Case 5 ;" Mit führender Null"
If MitNull = 0
MitNull = 1
SetGadgetState(5,1)
Debug EventID
Debug MitLfd
Debug MitNull
ElseIf MitNull = 1
MitNull = 0
SetGadgetState(5,0)
Debug EventID
Debug MitLfd
Debug MitNull
EndIf
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
EndIf
End
