Seite 2 von 3

Verfasst: 16.01.2009 23:08
von Dare Devil
Die Werte von width, height und depth muessen ja alle 0 sein - weil ja ansonst nirgendwo ein Wert zugewiesen wurde...

Code: Alles auswählen

Select GetGadgetState(#Combo_0)
  Case 0
    width = 640
    height = 480
  Case 1
    width = 600
    height = 800
  Case 2
    width = 1024
    height = 768
  Case 3
    width = 1152
    height = 864
  Case 4
    width = 1280
    height = 768
  Case 5
    width = 1440
    height = 900
EndSelect

If GetGadgetState(#Radio_0)
  depth = 4
ElseIf GetGadgetState(#Radio_1)
  depth = 8
ElseIf GetGadgetState(#Radio_3)
  depth = 16
ElseIf GetGadgetState(#Radio_5)
  depth = 24
ElseIf GetGadgetState(#Radio_7)
  depth = 32
EndIf

Debug width
Debug height
Debug depth

Verfasst: 16.01.2009 23:11
von Mok
ts-soft hat geschrieben:Meine Auflösung ist natürlich nicht bei, kann er als nicht Anzeigen :mrgreen:
Welche denn?

Verfasst: 16.01.2009 23:11
von KeyKon
Kaeru Gaman hat geschrieben:@KeyKon:
er setzt den betreffenden RadioButton auf Active, das stimmt so.
Stimmt... Das hab ich irgendwie falsch interpretiert :roll:
Ich hätte für die Farbtiefe der einfachheit halber ohnehin auch ein ComboboxGadget genommen...

Verfasst: 16.01.2009 23:14
von Dare Devil
Mok hat geschrieben:
ts-soft hat geschrieben:Meine Auflösung ist natürlich nicht bei, kann er als nicht Anzeigen :mrgreen:
Welche denn?
meine uebrigens auch nicht :wink:

ich hab 1024 x 600

Verfasst: 16.01.2009 23:20
von Kaeru Gaman
bei "800x600" hast du dich wohl vertippt...

und 1152x864, 1280x768 und 1440x900 hab ich garnicht,
würde keinen screen öffnen wenn ich das auswähle.

und 1280x1024 ist nicht drin.


... schau doch erstmal in den thread den ich verlinkt hab
und in das beispiel das ich dir angegeben hab,
damit du ne Vorstellung davon bekommst,
wie man Auflösungen für nen Nutzer anbietet.

PS:
hast du mein voriges posting (letztes auf der vorigen seite) überhaupt gesehen?

Verfasst: 16.01.2009 23:25
von ts-soft
Mok hat geschrieben:
ts-soft hat geschrieben:Meine Auflösung ist natürlich nicht bei, kann er als nicht Anzeigen :mrgreen:
Welche denn?
1680x1050, ist doch eine der geläufigsten. Wobei 1920x1200 auch am kommen ist.

Verfasst: 16.01.2009 23:28
von Dare Devil
hier ein kleines Beispiel zur Ueberpruefung der verfuegbaren ScreenModi im folgenden Format:

BreitexHoehexTiefe

Code: Alles auswählen

If InitSprite() = 0 : End : Endif

......


If ExamineScreenModes()
  While NextScreenMode()
    AddGadgetItem(#Combo_0, CountGadgetItems(#Combo_0), Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())+"x"+Str(ScreenModeDepth()))
  Wend
EndIf
      
SetGadgetText(#Combo_0,Str(DesktopWidth(0))+"x"+Str(DesktopHeight(0))+"x"+Str(DesktopDepth(0)))

Verfasst: 16.01.2009 23:46
von Kaeru Gaman
@Dare Devil

na mahlzeit!

was soll denn das für ne liste geben? :lol:

schau mal in diesen thread (hatte ich schon verher mal verlinkt)
http://www.purebasic.fr/german/viewtopic.php?t=17250

z.B.
> Allover Number of Modes: 180


... die verfügbaren modes muss man vorher sortieren und nur ein paar rauspicken.

Verfasst: 17.01.2009 00:09
von Dare Devil
@Kaeru
achso,
hab den Thread ja nur ueberflogen und den Link nich so bemerkt :wink:

Hier ein verbessertes Beispiel ohne die Tiefe:

Code: Alles auswählen

      NewList Aufloesungen.s()
      NewList Tiefe.l()
      
      If ExamineScreenModes()
        While NextScreenMode()
          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
      
      SetGadgetText(#Combo_0,Str(DesktopWidth(0))+"x"+Str(DesktopHeight(0)))
Waer zumindest ein Vorschlag... aehnliches muesste man dann auch fuer die Tiefe machen ...

Verfasst: 17.01.2009 01:54
von Dare Devil
Hab mir mal die Muehe gemacht und dein Code etwas ueberarbeitet, vielleicht hilfts dir ja.

Code: Alles auswählen

; PureBasic Visual Designer v3.95 build 1485 (PB4Code) 


;- Window Constants 
; 
Enumeration 
  #Window_0 
EndEnumeration 

;- Gadget Constants 
; 
Enumeration 
  #Text_0 
  #Combo_0 
  #Text_1 
  #Button_0 
  #Button_1 
  #Button_3
  #liste
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 ) 
      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") 
      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
      
      SetGadgetText(#Combo_0,Str(DesktopWidth(0))+"x"+Str(DesktopHeight(0)))
      
      ListIconGadget(#liste, 210, 40, 400, 140, "Verfuegbare Farbtiefen", 400)
      ForEach Tiefe()
        AddGadgetItem(#liste, CountGadgetItems(#liste), Str(Tiefe()))
      Next
      
    ;EndIf 
  EndIf 
EndProcedure 


Open_Window_0()  

Repeat
  EventID = WaitWindowEvent()
  
  If EventID = #PB_Event_CloseWindow
    End
  ElseIf EventID = #PB_Event_Gadget
    If EventGadget() = #Button_0
      If GetGadgetState(#liste) = -1
        MessageRequester("", "Keine Farbtiefe ausgewaehlt!")
      Else
        verfuegbar = 0
        ForEach Alle()
          If Alle() = GetGadgetItemText(#Combo_0, GetGadgetState(#Combo_0)) + "x" + GetGadgetItemText(#liste, GetGadgetState(#liste))
            verfuegbar = 1
          EndIf
        Next
        
        If verfuegbar = 0
          MessageRequester("", "Ausgewaehlter Modus leider nichtverfuegbar")
        Else
          Break
        EndIf
      EndIf
    EndIf
  EndIf
ForEver


combotext.s = GetGadgetItemText(#Combo_0, GetGadgetState(#Combo_0)) + "x" + GetGadgetItemText(#liste, GetGadgetState(#liste))
Position1 = FindString(combotext, "x", 1)
Position2 = FindString(combotext, "x", Position1+1)

width = Val(Left(combotext, Position1-1))
height = Val(Mid(combotext, Position1+1, Position2 - 1 - Position1))
depth = Val(Right(combotext, Len(combotext) - Position2))

msg.s = "Sie haben folgende Werte ausgewaehlt:" + Chr(10) + Chr(13)
msg + "Breite: " + Str(width) + Chr(10) + Chr(13)
msg + "Hoehe: " + Str(height) + Chr(10) + Chr(13)
msg + "Tiefe: " + Str(depth)

MessageRequester("", msg)