Mit der Fehlermeldung "Canvas/Leinwand erlaubt kein zeichnen" hab ich vor kurzem auch Bekanntschaft gemacht. Bei mir lag es daran, dass zwei Routinen gleichzeitig auf ein Canvas gemalt haben. Um sicher zu gehen das du malen darfst, solltest du sowas hier benutzen:
Delphi-Quellcode:
with Canvas do
if lockcount=0 then
begin
Lock;
Brush.Color:=clLime;
Canvas.Ellipse(10,20,20,40);
Unlock;
end; // lockcount = 0
wenn Lockcount <> 0 ist, dann führt ein zeichnen auf diesem Canvas zu einem Fehler, bei 0 kann man gefahrlos rummalen. Mit Lock und Unlock kannste der/die/das Canvas für dich reservieren und freigeben. Dabei sollte man immer an das freigeben denken, ansonsten gibts Probleme.
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!