- Das Prog wird bei jedem Bildschirm andere Höhen/Breiten anzeigen, da ja nicht alle auf allen Bildschirmen funzen.
- Mit CountGadgetItems() funzt GetGadgetState() nicht, oder doch? Und selbst wenn es funzen würde, würde bei einem Bildschirm der Eintrag Nummer 4 ein anderer sein als bei einem anderen Bildschirm, weill der zuletzt genannte vllt. nicht alle Breite/Höhen-Verhältnisse verwalten kann.
Code: Alles auswählen
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Text_0
#Combo_0
#Text_1
#Radio_0
#Radio_1
#Radio_3
#Radio_5
#Radio_7
#Button_0
#Button_1
#Button_3
EndEnumeration
InitSprite()
ExamineDesktops()
Global NewList Aufloesungen.s()
Global NewList Tiefe.l()
Global NewList Alle.s()
Procedure Open_Window_0()
If OpenWindow(#Window_0, 242, 46, 610, 310, "Aimer – Start Manager", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
;If CreateGadgetList(WindowID(#Window_0))
TextGadget(#Text_0, 10, 20, 110, 20, "Auflösung auswählen:")
ComboBoxGadget(#Combo_0, 10, 50, 120, 20)
TextGadget(#Text_1, 210, 20, 110, 20, "Farbtiefe auwählen")
OptionGadget(#Radio_0, 210, 40, 240, 30, "4 Bit.........16 Farben / nicht empfehlenswert")
OptionGadget(#Radio_1, 210, 70, 250, 30, "8 Bit.........256 Farben / nicht empfehlenswert")
OptionGadget(#Radio_3, 210, 100, 280, 30, "16 Bit.......65 536 Farben / nur für alte Grafikkarten")
OptionGadget(#Radio_5, 210, 130, 260, 30, "24 Bit.......16 777 216 Farben / empfehlenswert")
OptionGadget(#Radio_7, 210, 160, 380, 30, "32 Bit.......16 777 216 Farben, schneller als 24 Bit / sehr empfehlenswert")
ButtonGadget(#Button_0, 10, 230, 130, 30, "Aimer v1.00 starten")
ButtonGadget(#Button_1, 470, 230, 130, 30, "Beenden")
ButtonGadget(#Button_3, 230, 230, 130, 30, "Speichern ohne beenden")
If ExamineScreenModes()
While NextScreenMode()
AddElement(Alle())
Alle() = Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())+"x"+Str(ScreenModeDepth())
aufChange = 1
tiefChange = 1
ForEach Aufloesungen()
If Aufloesungen() = Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())
aufChange = 0
EndIf
Next
If aufChange = 1
AddElement(Aufloesungen())
Aufloesungen() = Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())
EndIf
ForEach Tiefe()
If Tiefe() = ScreenModeDepth()
tiefChange = 0
EndIf
Next
If tiefChange = 1
AddElement(Tiefe())
Tiefe() = ScreenModeDepth()
EndIf
Wend
EndIf
ForEach Aufloesungen()
AddGadgetItem(#Combo_0, CountGadgetItems(#Combo_0), Aufloesungen())
Next
;EndIf
EndIf
EndProcedure
Open_Window_0()
Select DesktopDepth(0)
Case 4
SetGadgetState(#Radio_0, 1)
Case 8
SetGadgetState(#Radio_1, 1)
Case 16
SetGadgetState(#Radio_3, 1)
Case 24
SetGadgetState(#Radio_5, 1)
Case 32
SetGadgetState(#Radio_7, 1)
EndSelect
SetGadgetText(#Combo_0,Str(DesktopWidth(0))+"x"+Str(DesktopHeight(0)))
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
Select Event
Case #PB_Event_CloseWindow
EXIT = 1
Case #PB_Event_Gadget
Select GadgetID
Case #Combo_0
Case #Radio_0
Case #Radio_1
Case #Radio_3
Case #Radio_5
Case #Radio_7
Case #Button_0
Case #Button_1
EXIT = 1
Case #Button_3
EndSelect
EndSelect
Until EXIT
End
;
PrefsWirte:
If CreatePreferences("settings.prefs")
PreferenceGroup("StartSettings")
If GetGadgetState(#Combo_0) = 0 Or GetGadgetState(#Combo_0) = 1
hoehe$ = Left(GetGadgetText(#Combo_0),3)
WritePreferenceLong("ScreenWidth",Val(hoehe$))
Else
breite$ = Left(GetGadgetText(#Combo_0),4)
WritePreferenceLong("ScreenWidth",Val(breite$))
EndIf
hoehe$ = Right(GetGadgetText(#Combo_0),3)
WritePreferenceLong("ScreenHeight",Val(hoehe$))
If GetGadgetState(#Radio_0) = 1
WritePreferenceLong("Depth",4)
ElseIf GetGadgetState(#Radio_1) = 1
WritePreferenceLong("Depth",8)
ElseIf GetGadgetState(#Radio_3) = 1
WritePreferenceLong("Depth",16)
ElseIf GetGadgetState(#Radio_5) = 1
WritePreferenceLong("Depth",4)
EndIf
Else
MessageRequester("Fehler!","Konnte die Voreinstellungen nicht laden/speichern."+Chr(10)+"Neuinstallation könnte den Fehler beheben")
EndIf
Return