OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Anfängerfragen zum Programmieren mit PureBasic.
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von Peter aus der Nordheide »

Hallo zusammen,

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).
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.
Nun habe ich probeweise ein TextGadget dazwischengelegt, und sieh da, es funktioniert !

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

Ich weiß, daß für diese Aufgabenstellung eigentlich das CheckBoxGadget vorgesehen ist und sich auch viel einfacher handhaben läßt.

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
Zuletzt geändert von Peter aus der Nordheide am 16.08.2005 19:47, insgesamt 1-mal geändert.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Dekommentier das erste Textgadget und mach den Text dafür leer .

Dann funktionierz
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Beitrag von Peter aus der Nordheide »

bobobo hat geschrieben:Dekommentier das erste Textgadget und mach den Text dafür leer .

Dann funktionierz
Hallo bobobo,
ja, genau das hatte ich ja rausgefunden, aber warum geht es mit den Rahmen nicht ?
Gruß Peter
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von rolaf »

Hallo,

steht doch alles in der Hilfe (Auszug):
... 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. ...
Edit: Pack doch einfach jede Optionsgruppe in ein ContainerGadget, läßt sich auch besser positionieren (da immer der komplette Container mit allen OptionGadget verschoben wird).
Zuletzt geändert von rolaf am 16.08.2005 18:42, insgesamt 1-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von Peter aus der Nordheide »

Falo hat geschrieben:Hallo,

steht doch alles in der Hilfe (Auszug):
... 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. ...
Hallo Falo,

guck doch mal bitte meinen Beitrag an.

Da hatte ich doch auch schon aus der Hilfe zitiert.

Die Frage ist, warum geht die Gruppentrennung mit einem TextGadget, - - - und mit dem Frame3DGadget NICHT ?

Gruß Peter
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von rolaf »

Peter aus der Nordheide hat geschrieben: Hallo Falo,

guck doch mal bitte meinen Beitrag an.

Da hatte ich doch auch schon aus der Hilfe zitiert.

Die Frage ist, warum geht die Gruppentrennung mit einem TextGadget, - - - und mit dem Frame3DGadget NICHT ?

Gruß Peter
Da sich mein Edit mit Deinen Post hier überschnitten hat nochmals:

"Pack doch einfach jede Optionsgruppe in ein ContainerGadget, läßt sich auch besser positionieren (da immer der komplette Container mit allen OptionGadget verschoben wird)."

Warum es mit den Frame3DGadget nicht geht, weis ich nicht, PB ist nicht immer vollkommen - aber meistens schon.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic.chm hat geschrieben: Diese Art von Gadget dient nur zur dekorativen Zwecken
Erfüllt also auch nicht dem Zweck eine neue Gruppe aufzurufen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Beitrag von Peter aus der Nordheide »

ts-soft hat geschrieben:
PureBasic.chm hat geschrieben: Diese Art von Gadget dient nur zur dekorativen Zwecken
Erfüllt also auch nicht dem Zweck eine neue Gruppe aufzurufen
Hallo Thomas,

muß meine Behauptung, daß es an anderer Stelle mit den Frame3DGadgets geht, zurücknehmen.

Auf Grund Deiner Antwort habe ich mir das Hauptlisting noch mal angesehen und habe feststellen müssen, daß im Anschluß einer Gruppe OptionGadgets ein ButtonGadget ist, und erst dann das Rahmengadget kommt.

Ich hatte aber geglaubt :mrgreen: , daß das RahmenGadget den Gruppenabschluß bildet.

Also vielen Dank für Deine kurze und zutreffende Antwort. :allright:

Gruß Peter
Peter aus der Nordheide
Beiträge: 34
Registriert: 18.05.2005 14:59

Re: OptionGadgets mit Mehrfachauswahl durch Gruppentrennung

Beitrag von Peter aus der Nordheide »

Falo hat geschrieben: "Pack doch einfach jede Optionsgruppe in ein ContainerGadget, läßt sich auch besser positionieren (da immer der komplette Container mit allen OptionGadget verschoben wird)."
Hallo Falo,

habe Deinen Vorschlag in der Zwischenzeit mal getestet. Haut alles so hin, wie ich mir das vorstelle.

Werde dann wohl auch das Hauptlisting entsprechend ändern, dann ist wenigstens eine Eindeutigkeit gegeben und es kann nichts mehr passieren.

Und die Verschiebemöglichkeit des ganzen Containers, hat natürlich auch was für sich.

Also auch Dir ein großes Dankeschön

Gruß Peter
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

ts-soft hat geschrieben:
PureBasic.chm hat geschrieben: Diese Art von Gadget dient nur zur dekorativen Zwecken
Erfüllt also auch nicht dem Zweck eine neue Gruppe aufzurufen
Hallo,

nunja ob dekorativ oder nicht, dennoch ist es ein Gadget. In Sinne der Einheitlichkeit wäre es daher schon besser wenn dies auch für das OptionGadget als Trenner fungieren könnte.

In VB zum Beispiel dient dieses "3D-Ding" übrigens tatsächlich als Container. Eigendlich könnte man ContainerGadget und Frame3DGadget auch vereinigen. Dazu müßte man im ContainerGadget nur den Standard-3D-Rahmen und den möglichen Text-Parameter als weitere Option einbauen - fertig wärs und äußerst praktisch dazu.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten