Seite 4 von 6

Verfasst: 02.06.2008 21:12
von Lorne
Code zum testen:

Code: Alles auswählen

InitSprite()
InitKeyboard()
InitMouse()

OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu,"Tasten Scanner")
If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu,"Tasten Scanner") =0
 MessageRequester("Error","Funktion 1 n.i.O.",#PB_MessageRequester_Ok)
EndIf

OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0)
If OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0) =0
 MessageRequester("Error","Funktion 2 n.i.O.",#PB_MessageRequester_Ok)
EndIf

 
LoadJPEGSprite(0,"I:\PB\Progs\TCS Window\GFX\NSA.jpg",0)

Global Taste.w
 Taste = 0

Repeat
ExamineKeyboard()
ExamineMouse()

ClearScreen(0,0,0)
EventID.l = WaitWindowEvent()

DisplayTransparentSprite(0,0,0)

StartDrawing(ScreenOutput())
 DrawingMode(1)
 Locate(5,5)
 FrontColor(0,255,0)
 DrawText("Tastencode: "+Str(Taste))
 Locate(137,283)
 FrontColor(0,255,0)
 DrawText("Copyright by N.S.A. 2008")
 StopDrawing()
FlipBuffers()
 

If KeyboardPushed(200)
 Taste=200
EndIf

If EventID = #PB_Event_CloseWindow Or KeyboardPushed(1)
Ende = 1
EndIf

FlipBuffers()

Until Ende = 1

Verfasst: 02.06.2008 21:31
von STARGÅTE
also so funzt alles so wie es soll:

Code: Alles auswählen

InitSprite() 
InitKeyboard() 
InitMouse() 

If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu,"Tasten Scanner") =0 
MessageRequester("Error","Funktion 1 n.i.O.",#PB_MessageRequester_Ok) 
EndIf 

If OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0) =0 
MessageRequester("Error","Funktion 2 n.i.O.",#PB_MessageRequester_Ok) 
EndIf 


LoadJPEGSprite(0,"NSA.jpg",0) 

Global Taste.w 
Taste = 0 

Repeat 
ExamineKeyboard() 
ExamineMouse() 

ClearScreen(0,0,0) 
EventID.l = WindowEvent() 

DisplayTransparentSprite(0,0,0) 

StartDrawing(ScreenOutput()) 
DrawingMode(1) 
Locate(5,5) 
FrontColor(0,255,0) 
DrawText("Tastencode: "+Str(Taste)) 
Locate(137,283) 
FrontColor(0,255,0) 
DrawText("Copyright by N.S.A. 2008") 
StopDrawing() 
FlipBuffers() 


If KeyboardPushed(200) 
Taste=200 
EndIf 

If EventID = #PB_Event_CloseWindow Or KeyboardPushed(1) 
Ende = 1 
EndIf 

FlipBuffers() 

Until Ende = 1
es sollte kein WaitWindowEvent() drinne steht, sondern nur WindowEvent() , sonst hängt er sich da auf und wartet und wartet

Du siehst keine Maus, weil du auch keine darstellst, wenn du ExamineMouse() benutzt ´musst du auch selber eine Maus im Screen Anzeigen lassen.
Sonst lasse die mausBefhele ganz weg .

Verfasst: 03.06.2008 00:05
von BlueHoschi
@Stargate
Wenn ich anmerken darf: Es ist meist besser statt WindowEvent(), WaitWindowEvent(mit Timeout) zu nehmen
das verbraucht nicht ganz soviel Rechenzeit, selbst wenn man nur 10 ms nimmt!!

Verfasst: 03.06.2008 00:35
von Kaeru Gaman
ja, aber das gibs erst seit 4.1, in 3.3 ist davon noch nix....
SG leistet hier Hilfestellung für nen 3.3 code.

Verfasst: 03.06.2008 00:49
von STARGÅTE
jo dann halt nich n Delay(2) irgendwo hingeklatscht und dann hat sich das ^^

Verfasst: 03.06.2008 07:24
von Lorne
Danke, nur wenn ich das Programm jetzt so nehme, es dann über F5 starte, habe ich immer noch das Problem:
Error at line 28 : The specified output is NULL (0 Value).
Also wieder die StartDrawing(ScreenOutput()) Zeile.
Wenn ich das Fenster anklicke, verschwindet meine Maus, die Funktion über Taste 200 geht nicht und die Esc-Funktion geht auch nicht.
Der Debugger hängt sich auf und ich muss ihn über den TaskManager schließen.
Das verstehe ich nicht.

Also ich habe das ganze jetzt mal durch getestet und bin auf die Erkenntnis gekommen das der Fehler in der Fensterdarstellung liegt.
Sobald ich

Code: Alles auswählen

If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu,"Tasten Scanner") =0 
MessageRequester("Error","Funktion 1 n.i.O.",#PB_MessageRequester_Ok) 
EndIf 

If OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0) =0 
MessageRequester("Error","Funktion 2 n.i.O.",#PB_MessageRequester_Ok) 
EndIf
auskomentiere und dies durch

Code: Alles auswählen

OpenScreen(640,480,16,"Test")
ersetze funktioniert das Programm. Aber eben im Vollbild und nicht im Fenster Modus.

Verfasst: 03.06.2008 11:31
von HeX0R
Bekommst du denn die Meldung "Funktion 2 n.i.O." immernoch ?
Weil dann ist es ja wohl logisch.

Eine simple Überprüfung, ob der Screen geöffnet werden konnte, ohne entsprechende Gegenmassnahmen einzuleiten (Stichwort: END) ist ziemlich sinnlos...

Ändere doch mal die Maße deines Windows & Screens in Klassiker wie 640x480 oder 800x600.

Verfasst: 03.06.2008 11:47
von Lorne
Nein die Meldung bekomme ich nicht. Das Fenster geht normal auf, aber sobal ich es anklicke geht nichts mehr.
Ich habe es auch schon mit Standartgrößen versucht, jedoch ist dort das Gleiche.
Wie gesagt, im Fullscreen läuft das wie es soll. Nur in der Fensterversion macht das sowas.

Verfasst: 03.06.2008 11:51
von Kaeru Gaman
mach maln bäckup von deinen codes, und installier das PB mal neu....

könnte die CD beschädigt gewesen sein, dass eine Lib nicht korrekt installiert wurde?

Verfasst: 03.06.2008 12:19
von Lorne
Das ist auf allen drei Rechner so.
Also mit denen ich arbeite.