[GELÖST] MaxGUI: style-parameter bei CreateButton()

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] MaxGUI: style-parameter bei CreateButton()

BeitragFr, Mai 06, 2011 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich lese mir gerade ein MaxGUI Tutorial durch und wollte ein Fenster machen, welches ein Button enthält. Nun habe ich eine ComboBox darüber, und möchte, das der Button solange grau unterlegt ist, bis der User etwas aus der ComboBox ausgewählt hat.
Ich habe mir das Tutorial dazu nochmal genauestens angeschaut und dabei ist mir ein Parameter bei der Funktion "CreateButton()" aufgefallen, und zwar der "style"-parameter. Nun meine Frage: Ist das der parameter, mit dem ich den Button entweder anklickbar oder unanklickbar machen kann? und wenn ja: welche anderen sachen kann ich dort einsetzen? Im Tut war die rede von BUTTON_PUSH ist standartmäßig ausgewählt...

Und gleich eine andere frage: Ist das Writeline von BlitzMax mit dem ReadLine von BlitzBasic auslesbar?

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 Fr, Mai 06, 2011 22:57, insgesamt einmal bearbeitet

mpmxyz

BeitragFr, Mai 06, 2011 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Style-Parameter bestimmt, welche Art von Button es wird. (normal, checkbox und radio button)
Das, was du suchst, ist DisableGadget/EnableGadget.
Die Zeilenbefehle sind kompatibel, da BlitzMax 13/10-Bytes für Zeilenumbrüche schreibt. (Das ist der Windows-Standard.)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

CO2

ehemals "SirMO"

BeitragFr, Mai 06, 2011 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke.

Ich schicke hier einfach mal den Code, ohne ists zu schwer zu erklären Wink

BlitzMax: [AUSKLAPPEN]
Import maxgui.drivers

Global mainwindow:TGadget = CreateWindow("Undead Cut Down Konfigurator", 100, 100, 400, 300, Null)

Global aufloesung1label:TGadget = CreateLabel("Auflösung", 10, 10, 80, 20, mainwindow)
Global aufloesung1:TGadget = CreateComboBox(100, 10, 125, 10, mainwindow)
Global aufloesung2label:TGadget = CreateLabel("X", 235, 10, 10, 20, mainwindow)
Global aufloesung2:TGadget = CreateComboBox(255, 10, 125, 10, mainwindow)
AddGadgetItem aufloesung1, "800"
AddGadgetItem aufloesung1, "1024"
AddGadgetItem aufloesung1, "1600"
AddGadgetItem aufloesung2, "600"
AddGadgetItem aufloesung2, "768"
AddGadgetItem aufloesung2, "900"

Global farbtiefelabel:TGadget = CreateLabel("Farbtiefe", 10, 50, 80, 20, mainwindow)
Global farbtiefe:TGadget = CreateComboBox(100, 50, 280, 10, mainwindow)
AddGadgetItem farbtiefe, "16"
AddGadgetItem farbtiefe, "24"
AddGadgetItem farbtiefe, "32"

Global moduslabel:TGadget = Createlabel("Modus", 10, 90, 80, 20, mainwindow)
Global modus:TGadget = CreateComboBox(100, 90, 280, 10, mainwindow)
AddGadgetItem modus, "Fenstermodus"
AddGadgetItem modus, "Vollbildmodus"

Global fpslabel:TGadget = Createlabel("FPS", 10, 130, 80, 20, mainwindow)
Global fps:TGadget = CreateComboBox(100, 130, 280, 10, mainwindow)
AddGadgetItem fps, "30"
AddGadgetItem fps, "60"
AddGadgetItem fps, "75"

Global fertigbutton:TGadget = CreateButton("Fertig", 150, 170, 80, 40, mainwindow)

Global swidth:Int
Global sheight:Int
Global sdepth:Int
Global smode:Int
Global sfps:Int

Repeat
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
End
Case EVENT_GADGETACTION
Select EventSource()
Case fertigbutton
swidth = Int(GadgetItemText(aufloesung1, SelectedGadgetItem(aufloesung1)))
sheight = Int(GadgetItemText(aufloesung2, SelectedGadgetItem(aufloesung2)))
sdepth = Int(GadgetItemText(farbtiefe, SelectedGadgetItem(farbtiefe)))
sfps = Int(GadgetItemText(fps, SelectedGadgetItem(fps)))
Local modetext:String = GadgetItemText(modus, SelectedGadgetItem(modus))
If modetext = "Fenstermodus" Then
smode = 2
Else
smode = 1
EndIf
WriteSettingsData(swidth, sheight, sdepth, smode, sfps)
End
End Select
End Select
Forever

Function WriteSettingsData(width:Int, height:Int, depth:Int, mode:Int, frpese:Int)
Local data = WriteFile("data\settings.ini")
WriteLine data, width
WriteLine data, height
WriteLine data, depth
WriteLine data, mode
WriteLine data, frpese
CloseFile data
EndFunction


Wo muss die If-Bedingung hin, und wie muss sie aussehen? (Ich möchte, das der "Fertig" - Button erst dann anklickbar ist, wenn in allen ComboBoxen etwas steht)

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

mpmxyz

BeitragFr, Mai 06, 2011 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
'vor der Hauptschleife
DisableGadget fertigbutton '<
'in der Hauptschleife
Case EVENT_GADGETACTION
Select EventSource()
Case aufloesung1,aufloesung2,farbtiefe,fps,modus '<
If 'Kontrolle, ob alle Listen ausgewählt wurden '<
EnableGadget fertigbutton '<
EndIf '<

Es gibt aber eine nutzerfreundlichere Lösung:
Wähle in jeder Liste einen Standardwert!
Damit musst du dann nicht mehr kontrollieren, ob ein Eintrag ausgewählt wurde, und der Nutzer muss sich nicht um jedes Feld kümmern, wenn er sich nicht gerade für alle interessiert. (fps, Farbtiefe sind zum Beispiel eher unwichtig für den Durchschnittsnutzer.)
->Verwende SelectGadgetItem!
mfG
mpmxyz
 

CO2

ehemals "SirMO"

BeitragFr, Mai 06, 2011 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke für die Hilfe! Habe die benutzerfreundlichere Variante genommen Very Happy
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