[Done] CanvasOutput(0) per Parameter an Proc = IMA
Verfasst: 08.10.2016 23:28
Hallo,
die Überschrift beschreibt es nicht ganz, aber irgendwas ist hier faul.
Testet bitte mal folgenden Code.
1) Zeile 15 auskommentiert und Zeile 16 einkommentiert = alles OK
2) Zeile 16 auskommentiert und Zeile 15 einkommentiert = IMA Fehler
3) Zeile 16 auskommentiert und Zeile 15 einkommentiert und Zeile 5 bis 13 auskommentiert = alles OK
Hier scheint es ein Problem zu geben, wenn ich CanvasOutput() als Parameter an die Prozedur übergebe und gleichzeitig zwei StartDrawing() / StopDrawing() - Abschnitte darin enthalten sind.
Vermutlich habe ich mal wieder nur was übersehen, aber ich finde die Ursache nicht.
die Überschrift beschreibt es nicht ganz, aber irgendwas ist hier faul.
Testet bitte mal folgenden Code.
1) Zeile 15 auskommentiert und Zeile 16 einkommentiert = alles OK
2) Zeile 16 auskommentiert und Zeile 15 einkommentiert = IMA Fehler
3) Zeile 16 auskommentiert und Zeile 15 einkommentiert und Zeile 5 bis 13 auskommentiert = alles OK
Hier scheint es ein Problem zu geben, wenn ich CanvasOutput() als Parameter an die Prozedur übergebe und gleichzeitig zwei StartDrawing() / StopDrawing() - Abschnitte darin enthalten sind.
Vermutlich habe ich mal wieder nur was übersehen, aber ich finde die Ursache nicht.
Code: Alles auswählen
Procedure Test (OutID.i)
iTempImage1 =CreateImage(#PB_Any, 1800, 1800)
iDC = StartDrawing(ImageOutput(iTempImage1))
If iDC = 0
; Device Context ist nicht für Zeichenoperationen gültig
Else
Debug iDC
Debug OutputWidth()
Debug OutputHeight()
StopDrawing()
EndIf
;iDC = StartDrawing(OutID) ; Das hier bringt einen Fehler
iDC = StartDrawing(CanvasOutput(0)) ; Das hier funktioniert
If iDC = 0
; Device Context ist nicht für Zeichenoperationen gültig
Else
Debug iDC
Debug OutputWidth()
Debug OutputHeight()
StopDrawing()
EndIf
FreeImage(iTempImage1)
EndProcedure
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 120, 120, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
CanvasGadget(0, 10, 10, 100, 100)
Test (CanvasOutput(0))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf