Alles kann passieren, daher sollte man immer prüfen, ob etwas geladen wurde oder nicht.
Nichts ist schlimmer als ein Absturz des Programms beim Kunden, nur weil der ein Bild vom falschen
Format laden will....
Bei allen öffentlichen Quellen und angeblichen Free, Gratis oder sonstwas Angeboten muss man peinlichst genau
auf die Lizenz achten, wenn man es verwenden möchte. Besonders, wenn man das auch noch unter die Leute
bringen will... wenn also bei einer Datei (Font, Bild, Musik egal was) die nicht von einem selbst kommt, die Lizenz
nicht bekannt ist : Finger weg!
So etwas kann einem schnell die Laune verhageln, wenn da Abmahnungen oder gar Anzeigen ins Haus flattern....
Und das "Einfrieren" der Anzeige kann man umgehen.
Stelle Dir vor, daß beim bewegen des Fensters keine Events für PB mehr abgearbeitet werden.
Man kann dieses umgehen, indem man direkt die Events von Windows in einem Callback abgreift.
Klingt komplizierter als es ist

Allerdings müsste man das für jedes Gadget tun. PB hat diesbezüglich BindEvent() und BindGadgetEvent() als Funktion im Gepäck.
Ein kleines Beispiel mit dem #PB_Event_Timer
Code: Alles auswählen
#Uhr = 0
Procedure NeueZeit()
Static OldTime.s
Zeit.s = FormatDate("%hh:%ii:%ss",Date())
If OldTime <> Zeit
If StartDrawing(CanvasOutput(#Uhr))
Box(0,0,OutputWidth(),OutputHeight(),0)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(0,0,Zeit, #White)
StopDrawing()
EndIf
OldTime = Zeit
EndIf
EndProcedure
OpenWindow(0, 0, 0, 300, 50, "Test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CanvasGadget(#Uhr, 0, 0, 300, 50)
BindEvent(#PB_Event_Timer, @NeueZeit(), 0)
AddWindowTimer(0, 123, 100)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit > 0
Wenn man hier das Fenster verschiebt friert nichts mehr ein und die zeit wird ständig weiter geändert.
Ausserdem zeigt es auch nochmal, die Zeit nur zu ändern, wenn diese sich ändert (ich habe extra den Timer
auf 100 ms gestellt.... und es flackert auch nichts

)