Mit der Reihenfolge bringt scheinbar nichts.
ich habe die begin und endscene einmal auskommentiert. Es funktioniert auch ohne.
Es KANN funktionieren, muss aber nicht. Außerhalb des OnPaint-Events würde ich zudem die Verwendung von BeginScene wie folgt empfehlen:
Delphi-Quellcode:
if Canvas.BeginScene then
try
Canvas.xxx //drawing image operations
...
finally
Canvas.EndScene;
end;
So weißt Du, ob die Ausgabe möglich war oder nicht (und kannst im letzten Falle Maßnahmen ergreifen um einen erneuten Versuch zu starten).
Das ist übrigens ein weiterer Vorteil der Verwendung des OnPaint-Events: Da musst Du BeginScene nicht verwenden, da das System vor Aufruf des Onpaint-Events das selber macht und insofern IMMER sichergestellt ist, dass Deine Zeichenausgaben erfolgen.
Das Problem tritt auch nur beim starten auf.
Sobald die APP mal läuft und sichtbar ist funktioniert es einwandfrei.
Klar. Habe ja oben bereits erwähnt, dass die Ausgaben auf dem Canvas der From (das RoundRect ist nur ein Bereich auf der Form und teilt sich den Canvas mit der ganzen Form) flüchtig sind. Bevor die Form nicht sichtbar ist, gehen alle Zeichenaktionen ins Leere...