[GELÖST] RadioButtons separatisieren?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] RadioButtons separatisieren?

BeitragDi, Sep 27, 2011 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Mir ist gerade was aufgefallen und dazu möchte ich eine Frage stellen: Wenn ich 2 separate Radio-Button-Felder machen will, wie geht das? z.b.: will ich - sagen wir - in dem ersten festlegen, welchen tile-modus man wählt (selektieren oder setzen), und in einem 2. wie groß ein tile ist (16 x 16, 32 x 32 oder 64 x 64) (Ich weiß, das das blöde beispiele sind, aber sie reichen zur veranschaulichung Very Happy)

So, nun ist es ja so, das BMax (oder die MaxGUI) diese 5 Radio-Buttons "verknüpft", d.h.: wenn ich sage, ich möchte den "setzen" modus im tilemodus wählen, kann keines der anderen radiobuttons angeklickt werden, ohne das der punkt vor dem modus verschwindet. Mein Frage also: Wie kann man die 2 Radio-Button felder separat abfragen? also das einmal der modus gewählt werden kann, aber auch andererseits gleichzeitig die größe eines tiles? (ich hoffe man konnte die Frage verstehen Wink wenn nicht: fragen Very Happy)

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Mi, Sep 28, 2011 18:46, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragDi, Sep 27, 2011 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Pack die, die zusammengehören, in ein Panel.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

CO2

ehemals "SirMO"

BeitragDi, Sep 27, 2011 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, erstmal danke für die Antwort.

Aber muss dieses Panel bestimmte Flags haben? weil wenn ich das wie folgt mache: BlitzMax: [AUSKLAPPEN]
Global tilemoduspanel:TGadget = CreatePanel(170, 100, 150, 160, mainwindow)
Dann will es nicht so recht Very Happy So passiert genau das selbe wie ohne Panel.

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Holzchopf

Meisterpacker

BeitragDi, Sep 27, 2011 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Und bei CreateButton gibst du als group-parameter tilemoduspanel an?
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

jsp

BeitragMi, Sep 28, 2011 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispiel:

Code: [AUSKLAPPEN]
SuperStrict

Import MaxGui.Drivers

Local Window1:TGadget = CreateWindow:TGadget("Window1",153,94,310,325,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_STATUS |WINDOW_CLIENTCOORDS )
   Local PlainPanel4:TGadget = CreatePanel:TGadget(170,156,116,154,Window1:TGadget,Null,"PlainPanel4")
      SetGadgetColor( PlainPanel4:TGadget,50,131,228, True )
      Local Radio7:TGadget = CreateButton:TGadget("Radio7",19,29,75,23,PlainPanel4:TGadget,BUTTON_RADIO)
         SetButtonState( Radio7:TGadget,0 )
      Local Radio8:TGadget = CreateButton:TGadget("Radio8",19,67,75,23,PlainPanel4:TGadget,BUTTON_RADIO)
         SetButtonState( Radio8:TGadget,0 )
      Local Radio9:TGadget = CreateButton:TGadget("Radio9",19,105,75,23,PlainPanel4:TGadget,BUTTON_RADIO)
         SetButtonState( Radio9:TGadget,1 )
   Local BorderPanel3:TGadget = CreatePanel:TGadget(170,40,116,94,Window1:TGadget,PANEL_BORDER,"BorderPanel3")
      Local Radio5:TGadget = CreateButton:TGadget("Radio5",17,17,75,23,BorderPanel3:TGadget,BUTTON_RADIO)
         SetButtonState( Radio5:TGadget,0 )
      Local Radio6:TGadget = CreateButton:TGadget("Radio6",17,55,75,23,BorderPanel3:TGadget,BUTTON_RADIO)
         SetButtonState( Radio6:TGadget,1 )
   Local Group2:TGadget = CreatePanel:TGadget(18,156,132,154,Window1:TGadget,PANEL_GROUP,"Group2")
      Local Radio4:TGadget = CreateButton:TGadget("Radio4",15,52,75,23,Group2:TGadget,BUTTON_RADIO)
         SetButtonState( Radio4:TGadget,0 )
      Local Radio3:TGadget = CreateButton:TGadget("Radio3",15,14,75,23,Group2:TGadget,BUTTON_RADIO)
         SetButtonState( Radio3:TGadget,1 )
   Local Group1:TGadget = CreatePanel:TGadget(18,28,132,108,Window1:TGadget,PANEL_GROUP,"Group1")
      Local Radio2:TGadget = CreateButton:TGadget("Radio2",15,54,75,23,Group1:TGadget,BUTTON_RADIO)
         SetButtonState( Radio2:TGadget,0 )
      Local Radio1:TGadget = CreateButton:TGadget("Radio1",15,16,75,23,Group1:TGadget,BUTTON_RADIO)
         SetButtonState( Radio1:TGadget,1 )

Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case Window1   Window1_WC( Window1:TGadget )
         End Select

      Case EVENT_GADGETACTION
         Select EventSource()
            Case Radio7   Radio7_GA( Radio7:TGadget )
            Case Radio8   Radio8_GA( Radio8:TGadget )
            Case Radio9   Radio9_GA( Radio9:TGadget )
            Case Radio5   Radio5_GA( Radio5:TGadget )
            Case Radio6   Radio6_GA( Radio6:TGadget )
            Case Radio4   Radio4_GA( Radio4:TGadget )
            Case Radio3   Radio3_GA( Radio3:TGadget )
            Case Radio2   Radio2_GA( Radio2:TGadget )
            Case Radio1   Radio1_GA( Radio1:TGadget )
         End Select

   End Select
Forever

Function Window1_WC( Window:TGadget )
   DebugLog "Window Window1 wants to be closed"
   End
End Function

Function Radio7_GA( Button:TGadget )
   DebugLog "Button Radio7 was pressed"
   
End Function

Function Radio8_GA( Button:TGadget )
   DebugLog "Button Radio8 was pressed"
   
End Function

Function Radio9_GA( Button:TGadget )
   DebugLog "Button Radio9 was pressed"
   
End Function

Function Radio5_GA( Button:TGadget )
   DebugLog "Button Radio5 was pressed"
   
End Function

Function Radio6_GA( Button:TGadget )
   DebugLog "Button Radio6 was pressed"
   
End Function

Function Radio4_GA( Button:TGadget )
   DebugLog "Button Radio4 was pressed"
   
End Function

Function Radio3_GA( Button:TGadget )
   DebugLog "Button Radio3 was pressed"
   
End Function

Function Radio2_GA( Button:TGadget )
   DebugLog "Button Radio2 was pressed"
   
End Function

Function Radio1_GA( Button:TGadget )
   DebugLog "Button Radio1 was pressed"
   
End Function
Logic Gui Professional a Gui Designer for MaxGui
 

CO2

ehemals "SirMO"

BeitragMi, Sep 28, 2011 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal danke für die Antworten.

Nun gibt es nur noch ein Problem: zeichne ich das Panel zuerst, sind die Radio-Buttons nicht mehr zu sehen, zeichne ich das panel nach den Radio-Buttons, sieht man diese zwar (Wenn man "tilemoduspanel" weglässt), aber wenn man das "tilemoduspanel" stehen lässt, gibt es den Fehler "Duplicate Variable". So sieht es momentan im Code aus: BlitzMax: [AUSKLAPPEN]
'TileModus
Global tilemodustrennlinie:TGadget = CreateLabel("", 170, 100, 20, 220, mainwindow, LABEL_SEPARATOR)
Global tilemoduspanel:TGadget = CreatePanel(170, 100, 150, 160, mainwindow)
Global tilemodustitle:TGadget = CreateLabel("Modus", 180, 100, 80, 20, mainwindow)
Global tilemodussetzen:TGadget = CreateButton("Tile Setzen", 180, 120, 150, 20, tilemoduspanel, BUTTON_RADIO) 'Lässt man "tilemoduspanel" weg, sieht man die Radiobuttons
SetButtonState(tilemodussetzen, 1)
Global tilemodusselektieren:TGadget = CreateButton("Tile Selektieren", 180, 140, 150, 20, tilemoduspanel, BUTTON_RADIO) 'Lässt man "tilemoduspanel" weg, sieht man die Radiobuttons


mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

jsp

BeitragMi, Sep 28, 2011 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Radiobuttons sind ausserhalb des Panels!
Denk dran das die Gadgets die auf einem Container Gadget liegen nur relative Koordinaten benötigen, keine absoluten.
Logic Gui Professional a Gui Designer for MaxGui

das wurgel

BeitragMi, Sep 28, 2011 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Problem ist warscheinlicht nicht, dass die radiobuttons unter dem panel sind, sondern das du die positionen relativ zum der oberen linken ecke des panels angeben musst, statt zur oberen linken ecke des fenster wie vorher. Das heißt, dass die Buttons sind schlicht außerhalb des panels anfangen und alles was außerhaln liegt abgeschnitten wird. Konkret heißt das: Du musst von den alten Buttonpositionen die Position ds Panels im Fenster abziehen, um die Positionen herauszubekommen, die die buttons in dem Panel haben.
1 ist ungefähr 3
 

CO2

ehemals "SirMO"

BeitragMi, Sep 28, 2011 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso. Ja, jetzt funktioniert es auch Very Happy Hier nochmal der korrigierte Code:

BlitzMax: [AUSKLAPPEN]
'TileModus
Global tilemodustrennlinie:TGadget = CreateLabel("", 170, 100, 20, 220, mainwindow, LABEL_SEPARATOR)
Global tilemoduspanel:TGadget = CreatePanel(180, 120, 150, 160, mainwindow)
Global tilemodustitle:TGadget = CreateLabel("Modus", 180, 100, 80, 20, mainwindow)
Global tilemodussetzen:TGadget = CreateButton("Tile Setzen", 0, 0, 150, 20, tilemoduspanel, BUTTON_RADIO)
SetButtonState(tilemodussetzen, 1)
Global tilemodusselektieren:TGadget = CreateButton("Tile Selektieren", 0, 20, 150, 20, tilemoduspanel, BUTTON_RADIO)


mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group