3 Gadget-Probleme

Anfängerfragen zum Programmieren mit PureBasic.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag 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
Bild + Bild

Bild
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

ts-soft hat geschrieben:Meine Auflösung ist natürlich nicht bei, kann er als nicht Anzeigen :mrgreen:
Welche denn?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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...
(\/) (°,,,°) (\/)
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag 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
Bild + Bild

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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 »

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.
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
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag 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)))
Bild + Bild

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag 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 ...
Bild + Bild

Bild
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag 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)
Bild + Bild

Bild
Antworten