Ich habe das so gelöst:
Code: Alles auswählen
EnableExplicit
#FullScreen=0
#WinW=800
#WinH=600
#WinTitle=""
;-Init
InitSprite()
InitMouse()
InitKeyboard()
;-Enum
;-Const
;-Structure
;-Global
Global MausX,MausY,MaustasteLinks,MaustasteRechts,MausFrei
;-Use
;-Define
Define event
;-Declare
;-Include
;-Macro
Procedure InitGui()
ExamineDesktops()
CompilerIf #FullScreen=0
OpenWindow(1,(DesktopWidth(0)-#WinW)/2,(DesktopHeight(0)-#Win/2,#WinW,#WinH,#WinTitle,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(1),0,0,#WinW,#WinH)
CompilerElse
If OpenScreen(#WinW,#WinH,32,#WinTitle)=0
MessageRequester("Fehler !","Kann Bildschirm nicht öffen !",#PB_MessageRequester_Error )
End
EndIf
CompilerEndIf
EndProcedure
InitGui()
Repeat
ClearScreen(0)
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Tab):MausFrei=1-MausFrei:ReleaseMouse(MausFrei):EndIf
ExamineMouse()
MausX=MouseX()
MausY=MouseY()
MaustasteLinks=MouseButton(#PB_MouseButton_Left)
MaustasteRechts=MouseButton(#PB_MouseButton_Right)
CompilerIf #FullScreen=0
event=WindowEvent()
Select event
Case #PB_Event_CloseWindow
End
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
CompilerEndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or MaustasteRechts
;-Problems
In #WinW und #WinH stehen die Screenabmessungen.
Wenn #FullScreen 0 ist, das Programm also im Windowed-Mode läuft, wird automatisch eine Ereignisschleife eingebunden.
Nachteil ist, dass das Programm jedesmal wenn ich #FullScreen ändere, neu compiliert werden muss.
Allerdings ist es kein Problem, #FullScreen als Variable einzubinden.
Außderdem setze ich mir mit ;- noch ein paar Markierungen, damit ich z.B. Dinge wie Structure, NewList, Global usw. leichter wiederfinde.
P.S.: Ich war früher mal als bizzl angemeldet, habe aber mein Passwort verbusselt.
Habe trotz mehrmaliger Anforderung nie ein neues Passwort erhalten.
Deswegen habe ich mich mit neuem Namen und neuer Mailadresse neu angemeldet.
Wieso habe ich nie ein neuse Passwort bekommen ? (Hatte Spamfilter ausgeschaltet.)