Du kannst doch ein Objekt des Typs "TMetaFileCanvas" per Hand erzeugen und anschließend wieder freigeben. Mach es doch einfach so:
Delphi-Quellcode:
procedure MyDraw;
var MetaGraphic : TMetafile;
MetaCanvas : TMetafileCanvas; // <-- hier
A : Integer;
procedure DrawSomething(Angle:Integer);
begin
// hier sollen etliche Zeichenoperationen stehen, als ob sie unter "with" stehen würden
MetaCanvas.LineTo(10, 10); // <-- hier noch ein "MetaCanvas" davor
end;
begin
MetaGraphic := TMetafile.Create;
//
// lieber noch in einen try-finally-Block packen
//
try
MetaCanvas := TMetafileCanvas.Create(MetaGraphic, 0);
//
try
for A := 0 to 90 do DrawSomething(A);
//
MyCanvas.Draw(0, 0, MetaGraphic);
finally
MetaCanvas.Free;
end;
finally
MetaGraphic.Free;
end;
end;
Hoffe, das hilft dir schonmal weiter.
MFG
Patti
PS: Willkommen in der
DP