Neues Fenster = Altes Verschwindet ungewollt

Anfängerfragen zum Programmieren mit PureBasic.
Stromberg
Beiträge: 20
Registriert: 04.06.2006 22:35
Kontaktdaten:

Neues Fenster = Altes Verschwindet ungewollt

Beitrag von Stromberg »

Hi,

bitte nicht lachen, aber ich sitze seit fast 24 Stunden an einem lächerlichen Problem.

Das folgende Programm, bereitet mir Kopfzerbrechen. Ja, ich weiß, es hat keinen Sinn und läuft ewig... :D

Wenn ich den Button klicke, so erscheint ein neues Fenster. Allerdings verschwindet das alte, was so nicht passieren soll.

Helft mir mal bitte auf die Sprünge, was ich da versaut habe. Danke.

Code: Alles auswählen

 Procedure startmenu()
  Enumeration
  #WahlFenster
  #button 
EndEnumeration 
OpenWindow(#WahlFenster, 349, 139, 380, 380, "Fenster1", #PB_Window_ScreenCentered| #PB_Window_BorderLess )
CreateGadgetList(WindowID(#WahlFenster))
ButtonGadget(#button,40,250,300,50,"Button",#BS_FLAT)
EndProcedure


 Procedure fensteranzeigen()
      Enumeration
              #fenster2
      EndEnumeration
   OpenWindow(#fenster2,0,0,40,40,"Fenster2",#PB_Window_ScreenCentered)
      CreateGadgetList(WindowID(#fenster2)) 
    EndProcedure 

startmenu()

Repeat

  Select WaitWindowEvent(25)
  
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #button 
        fensteranzeigen()
      EndSelect 
  EndSelect 

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

Beitrag von Kaeru Gaman »

deine zweite Enum ist da total falsch:

die fängt dann von vorne an zu zählen.

ich würd so auffe schnelle man sagen, die "beiden" fenster haben die selbe nummer.

Enum is zwar schick, aber zum rumprobieren sollte man fenster
und gadget-nummern vielleicht doch erst mal literal angeben.

auf keinen fall sollte man ein Enum in ne procedure stecken,
is dort absolut fehl am platze.
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 »

Mach mal eine Enumeration, wenn Du 2 mal Fenster 0 erstellst, wird das
erste natürlich gelöscht. Enumeration in der Prozedure macht keinen Sinn
und wirkt unübersichtlich :wink: , auserdem findet man dann solche Fehler
schneller als in 24 Std.
:mrgreen:
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
Stromberg
Beiträge: 20
Registriert: 04.06.2006 22:35
Kontaktdaten:

Beitrag von Stromberg »

Oh, mann, das wars. Danke! Ich bin schon an mir verzweifelt. Ich bin einfach davon ausgegangen, dass er "intelligent" weiterdeklariert.


Vielen Dank, du hast meinen Abend gerettet. :)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

PB Hilfe hat geschrieben:Die reservierte Konstante #PB_Compiler_EnumerationValue speichert den nächsten Wert, welcher in der Aufzählung benutzt wird. Dies kann nützlich sein, um mehrere Aufzählungen zu verketten.

[...]

Beispiel: Verknüpfte Enumerations

Code: Alles auswählen

  Enumeration
    #GadgetInfo ; wird 0 sein
    #GadgetText ; wird 1 sein
    #GadgetOK   ; wird 2 sein
  EndEnumeration
  
  Enumeration #PB_Compiler_EnumerationValue
    #GadgetCancel ; wird 3 sein
    #GadgetImage  ; wird 4 sein
    #GadgetSound  ; wird 5 sein
  EndEnumeration
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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 »

"intelligent weiterdeklarieren" geht nur so:

Code: Alles auswählen

Enumeration #PB_Compiler_EnumerationValue
;
;
EndEnumeration
AND51 war schneller /:-> :wink:
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
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

ts-soft hat geschrieben:AND51 war schneller /:-> :wink:
Macht nichts... :wink:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Stromberg
Beiträge: 20
Registriert: 04.06.2006 22:35
Kontaktdaten:

Beitrag von Stromberg »

Ein Dankeschön nochmal an alle, die geantwortet haben.

Dass der Fehler bei der Enumeration liegen könnte, da wäre ich einfach nicht drauf gekommen. Auch wenns natürlich in der Hilfe eindeutig formuliert ist. <)
Antworten