Ist das eine eigene Komponente, bzw. eine Komponente die Du im Source hast, wenn ja würde ich im Paint das Canvas einmal abstrahieren
Delphi-Quellcode:
var
c:TCanvas;
begin
if Assigned(FExportCanvas) then c := FExportCanvas else c := Canvas;
end;
und alle Zeichenausgaben auf c biegen. Ein Invalidate genügt dann um auf dem Bitmap.Canvas zu malen.
Wenn Deine Komponente scaliert muß an der Stelle wo Width und Height verwendet werden auch geprüft werden
ob FExportCanvas zugewiesen ist und gegf .Breite/Höhe der Bitmap gezogen werden