CreateGadgetList in PB 4.3

Anfängerfragen zum Programmieren mit PureBasic.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

THEEX hat geschrieben:Hmmm, ich würd mal sagen, OpenGadgetList() verwendet man für ContainerGadget(), ScrollAreaGadget() usw, denn da gibt man ja das Gadget selbst an und UseGadgetList() verwendet man, wenn man mit mehreren Fenstern arbeitet, da gibt die WindowID() an.
ja, so isses wohl.
OpenGadgetList() gibt's laut Hilfe nur für PanelGadget(),ContainerGadget()
und ScrollAreaGadget(). Mit CloseGadgetList() wird's wieder geschlossen und
UseGadgetList() für Fenster, genau.
Win11 x64 | PB 6.20
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 »

Also was muss ich jett verewenden wen ich ein Fenster mit 3 Buttons habe, einem ComboBox-Gadget und ein paar Radio-Gadgets?
Ich hab eigentlich schon alle GadgetList-Varianten probiert, aber der Cmopiler hat sich immer aufgehängt :freak:

Hier der Code (vom VD übernommen):

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


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")
      
      AddGadgetItem(#Combo_0,0,"640x480")
      AddGadgetItem(#Combo_0,1,"600x800")
      AddGadgetItem(#Combo_0,2,"1240x768")
      
    EndIf
  EndIf
EndProcedure



Open_Window_0()

SetGadgetState(#Radio_7, 1)
SetGadgetState(#Combo_0, 1)

Repeat ; Start of the event loop
  
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  
  GadgetID = EventGadget() ; Is it a gadget event?
  
  EventType = EventType() ; The event type
  
  ;You can place code here, and use the result as parameters for the procedures
  
  If Event = #PB_Event_Gadget
    
    If GadgetID = #Combo_0
      
    ElseIf GadgetID = #Radio_0
      
    ElseIf GadgetID = #Radio_1
      
    ElseIf GadgetID = #Radio_3
      
    ElseIf GadgetID = #Radio_5
      
    ElseIf GadgetID = #Radio_7
      
    ElseIf GadgetID = #Button_0
      
    ElseIf GadgetID = #Button_1
      
    ElseIf GadgetID = #Button_3
      
    EndIf
    
  EndIf
  
Until Event = #PB_Event_CloseWindow ; End of the event loop

End
;

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
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

nimm doch am besten gar keinen GadgetList-Befehl :D
Win11 x64 | PB 6.20
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Wenn du aber unbedingt so einen Befehl drinne haben willst, nimm
UseGadgetList(WindowID(#Window_0))
Win11 x64 | PB 6.20
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 »

nichts von beidem funzt
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

:?: wus :?:

... ich kommentiere das If und EndIf aus, das mit dem CreateGadgetList, und es läuft.

... was läuft denn bei dir nicht?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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 »

weiß net...
ich mach auch vor dem If CreategadgetList blablabla und vor dem EndIf ein Semikolon (sonst wird's zu ;))
Dann ein saftiger [F5]-Druck und PB reagiert nimmer :evil:
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
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Vielleicht hast du ja das falsche Endif genommen :lol:

So läuft es bei mir unter X86 und X64:

Code: Alles auswählen

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")
     
      AddGadgetItem(#Combo_0,0,"640x480")
      AddGadgetItem(#Combo_0,1,"600x800")
      AddGadgetItem(#Combo_0,2,"1240x768")
     
    ;EndIf
  EndIf
EndProcedure
Evtl. mach bei der Installation eine vollständige Installation, welches du
beim Setup von PB-Installer oben einstellen kannst.

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
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 »

Falko hat geschrieben: So läuft es bei mir unter X86 und X64
Jetz geht's auch... nachdem ich 10 Sekunden oder so warte :roll:
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
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Hm, und lass mich raten ... jetzt stockt jeder Fensteraufbau heftig?
Das Problem hab ich vor ein paar Tagen mal gehabt ... fehlerhaftes
nutzen von UseGadgetList() mit der PB4.30 ... keine Ahnung was
da kaputt gegangen ist, aber seit dem Windowsneustart gings wieder :D

Naja, Fehlerhaftes nutzen von Befehlen kann das gesamte OS
zerstören :lol: :oops: ... aber das hab ich zum glück noch nicht geschaft,
noch nicht :mrgreen: ... kleiner Spaß am Rande :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten