Mehrfach Fenster öffnen

Anfängerfragen zum Programmieren mit PureBasic.
Stephan-X
Beiträge: 78
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Mehrfach Fenster öffnen

Beitrag von Stephan-X »

Ich möchte 1 Fenster öffnen, dieses soll über die gesamte Programmzeit geöffnet sein,
mit Buttons möchte ich weitere Fenster über diesen öffnen !
Problem ist wenn das 1. Fenster geöffnet ist und ich öffne per Buttun und Includefile ein weiteres Fenster wird das 1. Fenster geschlossen ?

Code: Alles auswählen

Enumeration
  #verein_fenster
  #verein_status
  #verein_text
  #verein_grund
  #verein_ende
EndEnumeration

If OpenWindow(#verein_fenster,15,15,1400,800,"Vereins - Verwaltung ")
  StringGadget(#verein_text,300,200,200,25,"")
  ButtonGadget(#verein_grund,30,50,40,40,"G")
EndIf

Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Repaint
  EndIf
  If Event = #PB_Event_Menu
    Select  EventMenu()
    EndSelect
  EndIf	
   
  If Event = #PB_Event_Gadget
      Select EventGadget()
            Case #verein_text
            If EventType() = #PB_EventType_Focus
            ElseIf EventType() = #PB_EventType_Change
            ElseIf EventType() = #PB_EventType_LostFocus
            EndIf
       
        Case #verein_grund   ; Öffnen 2. Fenster
           IncludeFile "/home/ap-katrin/Entwicklung/SparVer/GrundDat.pb"
        EndSelect
   EndIf     
 Until EventID = #PB_Event_CloseWindow
 End
Da überseh ich bestimmt was, bitte um Hilfestellung !
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mehrfach Fenster öffnen

Beitrag von RSBasic »

Verwendet das zweite Fenster die selbe Konstante oder ID?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Mehrfach Fenster öffnen

Beitrag von ccode_new »

Hallöchen Stephan-X,

welche ID hat dein zweites Fenster ? (Was steht in der Include ?)

Laut Enumeration (Aufzählung) hat dein 1. Fenster den Index (ID) 0.

Hat dein zweites Fenster auch den Index 0 ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Mehrfach Fenster öffnen

Beitrag von GPI »

Schönes Beispiel, wo man lieber #pb_any benutzen sollte.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: Mehrfach Fenster öffnen

Beitrag von DarkSoul »

Jede ID kann nur von einem Fenster zur Zeit belegt werden.

Wenn du ein Fenster mit einer ID öffnest, unter der bereits ein Fenster geöffnet ist, wird das alte Fenster geschlossen. :wink:

Du musst dafür sorgen, dass jedes weitere Fenster eine andere ID hat. Daher (wenn du nicht weißt, wie viele Fenster geöffnet werden) #PB_Any. :mrgreen:
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Mehrfach Fenster öffnen

Beitrag von mk-soft »

Mal wieder eine falsche Anwendung von Enumeration.

Windows, Gadgets, Menus, etc haben ihre eigene PB-ID.
Ausserdem muss man nicht #PB_Any verwenden. Für #PB_Any muss man noch extra eine Variable anlegen und verwalten.
Wenn man mit sinnvollen Namen für Konstanten verwendet ist diese auch sehr gut im Code zu lesen.

Code: Alles auswählen

; Fenster 1
Enumeration Window
  #Main
EndEnumeration

Enumeration Gadget
  #MainList
  #MainButton_Ok
  #MainButton_Cancel
EndEnumeration

Enumeration Menu
  #MainMenu
EndEnumeration

Enumeration MenuItem
  #MainMenu_Exit
EndEnumeration



; Fenster 2

Enumeration Window
  #Dialog
EndEnumeration

Enumeration Gadget
  #DialogList
  #DialogButton_Ok
  #DialogButton_Cancel
EndEnumeration

Enumeration Menu
  #DialogMenu
EndEnumeration

Enumeration MenuItem
  #DialogMenu_Exit
EndEnumeration

Debug #Main
Debug #Dialog
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
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

Re: Mehrfach Fenster öffnen

Beitrag von ts-soft »

Leider schlecht zu sehen, aber hier die Erklärung:
mk-soft nutzt Named-Enumeration, also

Code: Alles auswählen

Enumeration Windows
EndEnumeration
Hier also mit dem Namen "Windows", der dafür sorgt, das jede Enumeration mit diesem Namen immer weiter gezählt wird. Die simplere Möglichkeit, als #PB_Any, wobei man einen ähnlichen Effekt hat.
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
Stephan-X
Beiträge: 78
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Re: Mehrfach Fenster öffnen Gelöst

Beitrag von Stephan-X »

Ok, der volständigkeit halber, ja ich habe in der anderen Datei andere Konstanten aber eben auch Enumeration / EndEnumeration
Habe nun in allen Dateien

Code: Alles auswählen

Enumeration  Programm
daraus gemacht und es Funzt !
Danke, echt schnelle Hilfe ! Manchmal sind es eben nur Kleinigkeiten :allright:
Gruß Stephan-X
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
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

Re: Mehrfach Fenster öffnen

Beitrag von ts-soft »

Das Funktioniert, ist aber nicht gerade Optimal!

Jedes PureBasic Objekt benötigt eine eigene Nummerierung. Es geht zwar, alles durchzunummerieren, dabei wird aber evtl. viel Speicher unnötig verbraucht. Besser ist es jedes Objekt von 0 anzufangen.
Was denn nun die einzelnen Objekte sind, kann man auch in der Hilfe nachschauen:
http://www.purebasic.com/german/documen ... jects.html
Übersicht über die verschiedenen PureBasic-Objekte

Gruß
Thomas
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
Antworten