suche Hilfe beim Aufbau eines Menüsystemes !

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: ... wieder ein Stück weiter ...

Beitrag von HeX0R »

samurai hat geschrieben: Was allerdings nicht funktionieren möchte ist der Befehl: #PB_Window_SizeGadget
Irgendwie scheint der keine Wirkung zu zeigen, da müßten sich doch alle Inhalte vergrößern, tut aber nix !? Das Fenster wird zwar größer, aber der Inhalt bleibt.
Sooo einfach geht das alles auch wieder nicht.
Wenn du deinem Fenster das Flag #PB_Window_SizeGadget spendierst, hast du schonmal den ersten Schritt getan:
Dein Fenster lässt sich Grössenverändern.

Nun musst du in der Eventschleife noch auf das #PB_Event_SizeWindow Event reagieren und entsprechende ResizeGadget()-Aufrufe starten.

Codes lassen sich hier ins Forum (wenn sie nicht zu lange sind) einfach reinpasten und mit

Code: Alles auswählen

 ... 
umschliessen.
Benutzeravatar
samurai
Beiträge: 26
Registriert: 12.08.2009 18:35
Wohnort: Rottenburg

Beitrag von samurai »

Vielen Dank !

Code: Alles auswählen

; Hier geht das #PB_Window_SizeGadget nicht !?
; Start im Verzeichnis: C:\QMSystems\
;
; Das Textfeld rechts unten bekomme ich auch nicht größer ... hmmm
; Da soll wenn es geht WORD starten und die ausgewählte Textdatei anzeigen.
;
;
;
#WindowWidth  = 800
#WindowHeight = 600


If OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, "DokuMenü", #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget )


  ExplorerListGadget(3, 1, 1, 100, 200, "C:\qmsystems\",  #PB_Explorer_AlwaysShowSelection)

  TextGadget(1, 1, 1, 10, 10, "Hier werden dann (größer) mit Word die Dokumente angezeigt !", #PB_Text_Center)
  
  EditorGadget(0, 10, 10, 30, 20)    

  CloseGadgetList()
  
  SplitterGadget(2, 0, 0, #WindowWidth/2, #WindowHeight/2, 1, 0)
  SplitterGadget(4, 0, 0, #WindowWidth, #WindowHeight, 3, 2, #PB_Splitter_Vertical | #PB_Splitter_Separator)
    
  SetGadgetState(5, 500)
  

  Repeat
    EventID = WaitWindowEvent()
    
    If EventID = #PB_Event_Gadget
      
      Select EventGadget()

        Case 8
          SetGadgetState(5, 333)
          SetGadgetState(2, 333)
          SetGadgetState(11, 5)
          
        Case 20
          Debug "OK" 
          
      EndSelect
      
    ElseIf EventID = #PB_Event_SizeWindow
      ResizeGadget(5, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0)-25) ; Our 'master' splitter gadget
      
    EndIf

  
  Until EventID = #PB_Event_CloseWindow

EndIf

End  
Schreibfehler sind beabsichtigt und dienen der Unterhaltung ...
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Sodele, und jetzt noch das ganze lauffähig.

Mach doch einfach den Debugger an, der macht dich schon auf einige Fehler aufmerksam.
Benutzeravatar
samurai
Beiträge: 26
Registriert: 12.08.2009 18:35
Wohnort: Rottenburg

Beitrag von samurai »

Ohjee Ohjee ... da werden jetzt 3 Zeilen Rot markiert !
Da hab ich jetzt auch unter HILFE nachgeschaut, aber welche Einträge da fehlen hab ich nicht rausgefunden ...
Irgendwie wird mir das jetzt aber langsam schon klar, ich muß was ich da handeln will zuerst in eine Liste packen ... Öhm, aber was will ich denn eigentlich handeln !?
Schreibfehler sind beabsichtigt und dienen der Unterhaltung ...
Benutzeravatar
Deluxe0321
Beiträge: 336
Registriert: 19.05.2006 00:31
Kontaktdaten:

Beitrag von Deluxe0321 »

1. Schau nach den GadgetIDs. Du willst mit einem Gadget arbeiten welches garnicht erstellt wurde; zähl mal nach. (Das wären schonmal 2 Makierungen)
2. Schau in der Hilfe nach wann CloseGadgetList() angewendet wird (Die letzte).

Gruß Marv
Ich habe keine Lösung, aber ich bewundere das Problem.
Benutzeravatar
samurai
Beiträge: 26
Registriert: 12.08.2009 18:35
Wohnort: Rottenburg

Beitrag von samurai »

Jetzt habe ich das bisschen Programm total verhauen ...
Mann Oh Mann, ich frage mich gerade, wann ich das letzte Mal "denken" mußte und finde keine Antwort ... :oops:
Ne im Ernst, deßhalb mache ich auch keine Sudokus ...

Also zu den Gadget's, ich brauche ja eigentlich nur zwei.
Den "Editor" habe ich also mal rausgenommen.

Jetzt kämpfe ich aber noch mit den "Splitter"n rum.
Irgendwie hab ich das noch nicht verstanden, die erste Zahl ist doch Quasi die Nummer des Gadget's.
Explorer = 3 und Text = 1
Wenn ich aber bei einem der beiden Splitter 3 oder 1 angebe, dann kommt die Meldung "ist nicht initialisiert" !?
Öhmm ... eigentlich brauche ich doch nur einen Splitter, wenn ich letztlich nur 2 Gadgets habe.
Die Fehlermeldung bleibt aber trotzdem noch ... hmmm
Schreibfehler sind beabsichtigt und dienen der Unterhaltung ...
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@samurai: Ein Splittergadget ist ein Container für zwei andere Gadgets.
Insofern benötigst Du vorher auch nur eins von diesen Dingern.

Code: Alles auswählen

[...]
ExplorerListGadget(0, ...
EditorGadget(1, ...
SplitterGadget(2, x, y, w, h, 0, 1...
[...]
Hier ist es IMO angebracht, wenn Du anstelle der Zahlen, die Du als
Gadgetnummern angibst, Konstanten verwendest. Das macht den Code
lesbarer. Damit Du die Konstanten nicht manuell durchnummerieren
musst, kannst Du eine Enumeration verwenden (die macht das
automatisch für Dich):

Code: Alles auswählen

Enumeration
 #myExplorerListGadget
 #myEditorGadget
 #mySplitterGadget
EndEnumeration

[...]
ExplorerListGadget(#myExplorerListGadget, ...
EditorGadget(#myEditorGadget, ...
SplitterGadget(#mySplitterGadget, x, y, w, h, #myExplorerListGadget, #myEditorGadget...
[...]
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
samurai
Beiträge: 26
Registriert: 12.08.2009 18:35
Wohnort: Rottenburg

Beitrag von samurai »

HA ... hab ich mir's doch gedacht !
Vielen Dank für Deine ausführliche Beschreibung !!
Ich hab jetzt nochmal mit dem "GadgetSplitter" neu angefangen, wie schon getippt, hab ich mein altes verhauen ...
Am Samstag fahr ich in Urlaub, mal sehen was ich bis dahin noch hin bekomme !?
Schreibfehler sind beabsichtigt und dienen der Unterhaltung ...
Benutzeravatar
samurai
Beiträge: 26
Registriert: 12.08.2009 18:35
Wohnort: Rottenburg

5 bis 12 ...

Beitrag von samurai »

So, jetzt hatte ich eigentlich die 2 Gadget's so wie ich sie haben wollte, aber es kommt wieder ein Fehler, den ich mir nicht erklären kann ! Das Progrämmchen ist doch nun wirklich so klein, daß für einen Fehler schier kein Platz ist ...

Code: Alles auswählen

#WindowWidth  = 640
#WindowHeight = 480

If OpenWindow(0, 100, 120, #WindowWidth, #WindowHeight, "Menü Test", #PB_Window_SizeGadget | #PB_Window_SizeGadget | #PB_Window_SizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)

  ExplorerListGadget(1, 115, 10, 100, 190, "C:\QMSystems\", #PB_Explorer_AlwaysShowSelection|#PB_Explorer_FullRowSelect|#PB_Explorer_MultiSelect)
  EditorGadget(2, 115, 10, 100, 190)
  

  CloseGadgetList()

  SplitterGadget(3, 0, 0, #WindowWidth, #WindowHeight, 1, 2, #PB_Splitter_Vertical | #PB_Splitter_Separator)
   
  SetGadgetState(2, 500)

  Repeat
    EventID = WaitWindowEvent()
    
    If EventID = #PB_Event_Gadget
      
      Select EventGadget()

        Case 8
          SetGadgetState(1, 333)
          SetGadgetState(2, 333)
          
      EndSelect
            
    ElseIf EventID = #PB_Event_SizeWindow
      ResizeGadget(2, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0)-25) ; Our 'master' splitter gadget
      
    EndIf

    Until EventID = #PB_Event_CloseWindow

EndIf

End  
Wenn ich so die Beispiele ansehe, sitzt das Close doch an der richtigen Stelle !?
Schreibfehler sind beabsichtigt und dienen der Unterhaltung ...
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

lass das ClosegadgetList() weg und schon klappt es...
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Antworten