Probleme beim Fenster
Probleme beim Fenster
Hallo,
ich bin neu hier und habe ein Problem. Ich habe mit dem Visual Disigner ein Fenster erstellt, und wollte in diesem einen Screen offnen und das Spiel darin laufen lassen. Also habe ich die Daten in PureBasic eingefügt und versucht, die Befehle in das Spiel zu integrieren. Allerdings kam nur eine Fehlermeldung, die besagte, das die WindowID falsch ist. Ich habe mich durch das Tutorium von purebasic.com gearbeitet und ein Spiel daraus genommen, um herauszufinden, wie das funktioniert.
mfG Felix
ich bin neu hier und habe ein Problem. Ich habe mit dem Visual Disigner ein Fenster erstellt, und wollte in diesem einen Screen offnen und das Spiel darin laufen lassen. Also habe ich die Daten in PureBasic eingefügt und versucht, die Befehle in das Spiel zu integrieren. Allerdings kam nur eine Fehlermeldung, die besagte, das die WindowID falsch ist. Ich habe mich durch das Tutorium von purebasic.com gearbeitet und ein Spiel daraus genommen, um herauszufinden, wie das funktioniert.
mfG Felix
Re: Probleme beim Fenster
Erstmal: Willkommen an Bord.
allerdings ist dein Problem ohne kurzen, lauffähigen Code, der dein Anliegen beschreibt,
nur schwer reproduzierbar. Könntest du also etwas code hierher posten?
Vom Problem her würde ich sagen du könntest mal ein WindowID() einbauen und es dann
noch einmal testen.
allerdings ist dein Problem ohne kurzen, lauffähigen Code, der dein Anliegen beschreibt,
nur schwer reproduzierbar. Könntest du also etwas code hierher posten?
Vom Problem her würde ich sagen du könntest mal ein WindowID() einbauen und es dann
noch einmal testen.
Win11 x64 | PB 6.20
Re: Probleme beim Fenster
Dazu braucht man keinen code..... felix16 hat doch genau beschrieben wa er getan hat... Ein fenster geöffnet um darin einen Screen zu erstellen... und eine Fehlermeldung erhalten! (und einen lauffähigen kann er nicht liefern da er Fehler bekommt
)
Zu dem Problem:
Um einen WindowedScreen() (um diesen handelt es sich offensichtlich) in einem Fenster zu öffnen, musst du die Fenster-Nummer, die beim Erstellen des Window angegeben wird mit WindowID(Fensternummer) an den Befehl für den WindowedScreen übergeben.
Schau dir mal die Hilfe zu OpenWindowedScreen() an
Aber um mit den Worten von Andeasdaf abzuschliessen... Ein CodeSchnippsel der das Problem verdeutlicht ist IMMER eine gute Sache
(mit lauffähig meint er einen Code, der alles incl. einer Eventschleife enthält)
PS: Willkommen im Board

Zu dem Problem:
Um einen WindowedScreen() (um diesen handelt es sich offensichtlich) in einem Fenster zu öffnen, musst du die Fenster-Nummer, die beim Erstellen des Window angegeben wird mit WindowID(Fensternummer) an den Befehl für den WindowedScreen übergeben.
Schau dir mal die Hilfe zu OpenWindowedScreen() an
Aber um mit den Worten von Andeasdaf abzuschliessen... Ein CodeSchnippsel der das Problem verdeutlicht ist IMMER eine gute Sache

PS: Willkommen im Board

Re: Probleme beim Fenster
Hallo,
danke für die Hilfe, über die WindowID meckert er nicht mehr.
Wenn ich allerdings versuche, zu starten, makiert PB mir den LoadSprite-Befehl. Die Fehlermeldung lautet:
There is no current Screen.
Ich habe den vom Visual Designer erstellten Code anstelle von OpenScreen eingesetzt, jetzt weiß ich nicht, wo und wie ich den Befehl für den Window-Screen setzen muss.
Hier der Code für das Fenster:
Code-Tags ergänzt
Andesdaf
danke für die Hilfe, über die WindowID meckert er nicht mehr.
Wenn ich allerdings versuche, zu starten, makiert PB mir den LoadSprite-Befehl. Die Fehlermeldung lautet:
There is no current Screen.
Ich habe den vom Visual Designer erstellten Code anstelle von OpenScreen eingesetzt, jetzt weiß ich nicht, wo und wie ich den Befehl für den Window-Screen setzen muss.
Hier der Code für das Fenster:
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 300, 100, 640, 480, "Spiel", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
EndIf
EndIf
EndProcedure
Andesdaf
Re: Probleme beim Fenster
Wilkommen im Board.
Du hast den Befehl, um den Screen zu öffnen vergessen. OpenWindowedScreen(WindowID,X,Y,Weite,Höhe,Autostretch,Rightoffset,Bottomoffset) öffnet einen Screen im Fenster. 
Im übrigen würde ich den Visual-Designer meiden, da er sehr veraltet ist.
Ps: Bitte das nächste mal Code-tags verwenden, das erhöt die Übersichtlichkeit deutlich.

Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 300, 100, 640, 480, "Spiel", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
OpenWindowedScreen(WindowId(#window_0),0,0,640,480,0,0,0)
If CreateGadgetList(WindowID(#Window_0))
EndIf
EndIf
EndProcedure

Im übrigen würde ich den Visual-Designer meiden, da er sehr veraltet ist.
Ps: Bitte das nächste mal Code-tags verwenden, das erhöt die Übersichtlichkeit deutlich.

Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Re: Probleme beim Fenster
Hallo,
ich habe den Befehl extra weggelassen, ich möchte wissen, ob der Befehl in die Klammer der Procedure gehört oder hinter die Klammer, und was noch dazu gehört, der Befehl alleine funktioniert anscheinend nicht.
ich habe den Befehl extra weggelassen, ich möchte wissen, ob der Befehl in die Klammer der Procedure gehört oder hinter die Klammer, und was noch dazu gehört, der Befehl alleine funktioniert anscheinend nicht.
Re: Probleme beim Fenster
Der Befehl gehört auf jeden Fall in die Procedure, da befehle die außerhalb stehen, bei Procedureaufruf garnicht abgearbeitet werden.
Der Befehl alleine kann garnicht funktionieren, da er immer ein Fenster braucht, zu dem er gehört.
Hier mal ein kleines Beispiel:
Der Befehl alleine kann garnicht funktionieren, da er immer ein Fenster braucht, zu dem er gehört.
Hier mal ein kleines Beispiel:
Code: Alles auswählen
InitSprite()
Enumeration
#window
EndEnumeration
OpenWindow(#window,100,100,200,200,"Test")
OpenWindowedScreen(WindowID(#window),0,0,200,200,0,0,0)
;Bei Procedureaufruf hier Procedurenamen eingeben und openscreen und openwindowedscreen weglassen...
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
Box(20,20,30,30,$2747D8)
StopDrawing()
FlipBuffers()
Until WaitWindowEvent() = #PB_Event_CloseWindow
;Mit Procedure:
;Procedure Openwindow()
;
; OpenWindow(#window,100,100,200,200,"Test")
; OpenWindowedScreen(WindowID(#window),0,0,200,200,0,0,0)
;
;endprocedure
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.