Seite 1 von 1

Open(Windowed)Screen Error?

Verfasst: 22.12.2008 20:47
von DrNo
Hallo,
Ich als anfänger wollte grad ein bisschen in die Screenbefehle "reinschnuppern" und wollte einfach mal ein kleinen Fenster mit einem Screen darin öffnen:

Code: Alles auswählen

If InitEngine3D() = 0 Or InitSprite() = 0
   MessageRequester("Fehler", "Fehler beim Laden.")
EndIf

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 200, "Fenster")
   If OpenWindowedScreen(WindowID(0), 0, 0, 300, 200, 1, 300, 200)
       ButtonGadget3D(0, 20, 20, 50, 50, "!?",0)
   EndIf
EndIf

Repeat
   Event = WaitWindowEvent()
   
Until Event = #PB_Event_CloseWindow

End   
Wenn ich aber nun meinen Code ausführe dann kommt eine Visual C++ Runtime Fehlermeldung und in PureBasic steht Invalid Memory Access.
Hab gedacht liegt vielleicht an ner defekten Visual C++ Runtime und hab dann die Visual C++ Runtime 2008 (neu) installiert. Als der Fehler dann aber immernoch da war hab ich mal die Beispielcodes aus der Sprite-Bibliothek ausprobiert. Aber auch da kommt dann die FEhlermeldung dass irgend ein Sprite nicht richtig geladen sei obwohl er eigentlich geladen ist. Früher in PB v4.20 hats aber glaub geklappt.
Liegt das nun an der neuen Version oder an was andrem?

Und noch eine Frage: Wozu brauch ich RightOffset und BottomOffset ?
Wird in der Holfe nämlich irgendwie nicht richtig erklärt. Hab einfach mal die Fenstergröße reingeschrieben.

DrNo

Verfasst: 22.12.2008 20:55
von Kaeru Gaman
aaaalso...

die Implementierung der CEGUI, die die 3D-Gadgets macht, ist noch nicht 100%ig...
das könnte hier nen fehler verursachen...


> Wozu brauch ich RightOffset und BottomOffset ?
> Wird in der Holfe nämlich irgendwie nicht richtig erklärt.

wie in der Hilfe steht, für einen unteren bzw. rechten Rand, wo der screen nicht sein soll.

also z.b.

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 200, "Fenster")
   OpenWindowedScreen(WindowID(0), 20, 10, 300, 200, 1, 30, 20)
würde einen 300x200 screen erzeugen, der auf 250x170 gestaucht wird,
dass er nur einen bereich von (20, 10) bis (300-30, 200-20) einnimmt.

...wenn dein WindowedScreen das ganze fenster einnehmen soll,
setzt du einfach Autostretch und die beiden Offsets auf 0.

Re: Open(Windowed)Screen Error?

Verfasst: 22.12.2008 21:03
von PMV
Die Gadget3D basiert auf Window3D ... so kann das nicht funktionieren:
PB Hilfe: Gadget3D hat geschrieben:Vor dem Verwenden von Gadgets wird normalerweise zuerst ein Fenster geöffnet.
Und wenn du auf "Fenster" klickst, landest du bei OpenWindow3D() :wink:

Desweiteren solltest du meinen Post im folgenden Thread beachten:
http://www.purebasic.fr/german/viewtopic.php?t=18619

MFG PMV