Grafikproblem PB

Anfängerfragen zum Programmieren mit PureBasic.
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: Grafikproblem PB

Beitrag von schleicher »

Punkt 1. trifft dann wohl den Nagel auf den Kopf. Ich das mal versuchen morgen umzusetzen. Danke
Für heute ist Feierabend.
Purebasic 5.51
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

schleicher hat geschrieben:Feierabend
...wie das duftet. Kräftig, deftig, würzig, gut. :D
Wenn beim ersten Punkt wohl doch nicht den Nagel auf den Kopf trifft dann poste dein Code. Dann sehen wir wenigstens was falsch gemacht wurde und was du besser machen kannst. :)
Zuletzt geändert von CodeCommander am 18.01.2015 14:33, insgesamt 1-mal geändert.
~ DELETE ~
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: Grafikproblem PB

Beitrag von schleicher »

ts-soft hat geschrieben:Am besten Du nutzt nur einen EventLoop für alle Fenster!
Muss ich denn die Buttongadgeds von den Sub-Windows dann auch alle ins Mainwindow übernehmem, oder bekomme ich
die irgendwie in der Procedur fürs Sub-Window gestartet ohne einen neuen Eventloop zu starten?
Purebasic 5.51
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Grafikproblem PB

Beitrag von RSBasic »

Die Gadgets erstellst du ganz normal in den jeweiligen Fenstern und die Events kannst du in deiner Haupt-Eventschleife abfragen, beispielsweise ob auf einen Button gedrückt wurde.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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: Grafikproblem PB

Beitrag von ts-soft »

Du sollst alle Ereignisse in einem EventLoop abfragen. Die Buttons können sich selbstverständlich in irgend-
einem Fenster befinden. Am einfachsten ist es alle Fenster am Anfang zu öffnen, aber nur das Hauptfenster
anzuzeigen, d. h. die anderen werden versteckt.

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Haupt")
  ButtonGadget(0, 10, 10, 100, 30, "Anderes Fenster")
  ; ....
EndIf

If OpenWindow(1, #PB_Ignore, #PB_Ignore, 600, 300, "Anderes Fenster", #PB_Window_SystemMenu | #PB_Window_Invisible)
  ;.....
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case 0
          Break
        Case 1
          HideWindow(1, #True)
      EndSelect
    
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          HideWindow(1, #False)
          SetActiveWindow(1)
      EndSelect
  EndSelect
ForEver
So in etwa. Es werden alle Ereignisse abgearbeitet und das in einem EventLoop.
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
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Grafikproblem PB

Beitrag von Danilo »

Mit Ereignisprozeduren spart man sich diese verschachtelte Ereignisabfrage:

Code: Alles auswählen

Procedure OnClick_Btn0()
    HideWindow(1, #False)
    SetActiveWindow(1)
EndProcedure

Procedure OnCloseWindow_0()
    End
EndProcedure

Procedure OnCloseWindow_1()
    HideWindow(1, #True)
    SetActiveWindow(0)
EndProcedure

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Haupt")
    BindEvent(#PB_Event_CloseWindow, @OnCloseWindow_0(), 0)
    ButtonGadget(0, 10, 10, 100, 30, "Anderes Fenster")
    BindGadgetEvent(0, @OnClick_Btn0())
    ; ....
EndIf

If OpenWindow(1, #PB_Ignore, #PB_Ignore, 600, 300, "Anderes Fenster", #PB_Window_SystemMenu | #PB_Window_Invisible)
    BindEvent(#PB_Event_CloseWindow, @OnCloseWindow_1(), 1)
    ;.....
EndIf

Repeat : WaitWindowEvent() : ForEver
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: Grafikproblem PB

Beitrag von schleicher »

Ich hatte meine Frage nur falsch formuliert. Meine Frage sollte heißen, ob die Events des 2. Windows ins 1. Window müssen
Also

Case #Button_2.Window muss in die Eventschleife des 1.Window ? Und diese Frage wurde von euch beantwortet.
Danke.
Purebasic 5.51
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: Grafikproblem PB

Beitrag von schleicher »

Könnte man wegen der Übersichtlichkeit die Events der Unterfenster in der jeweiligen Unterfenster-Procedur belassen und diese trotzdem von der Eventschleife im Hauptfenster ausführbar machen ?
Purebasic 5.51
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: Grafikproblem PB

Beitrag von ts-soft »

Nutze doch einfach BindEvent, BindGadgetEvent und BindMenuEvent, dann ergibt sich das doch.
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