Zitat von
mytar:
Ich denke bei TImage gibt es keine PaintTo-Methode, oder doch?
Hey, du hat ja recht.
Die Methode
PaintTo gibt es nur bei WinControls. Und da TImage von TGraphicControl abgeleitet ist,
muss man dort mit TGraphicControl.
Canvas arbeiten.
Damit habe ich eine Procedure gebaut, die jedes Control zeichnen kann:
Delphi-Quellcode:
type
TGC_cracker = class(TGraphicControl) // Hilfsklasse, wg. Zugriff auf protected Properties
end;
procedure PaintControlToCanvas(control:TControl; Canvas:TCanvas; x,y:Integer);
var
dest, src : TRect;
begin
Assert(Assigned(control));
Assert(Assigned(canvas));
if control is TWinControl then
TWinControl(control).PaintTo(Canvas.Handle, x, y)
else if control is TGraphicControl then
begin
src := control.ClientRect;
dst := src;
OffsetRect(dest, x, y);
Canvas.CopyRect(dest, TGC_cracker(control).Canvas, src);
end
else
Assert(False, 'PaintControlToCanvas(: Control-Class not supported');
end;