Hey, hey, du bist ja richtig gut. Danke Kumpel.
Aber, was machen wir da??
Bringts was, die 90 Grad gedrehte Metafile nachmal auf eine andere zu zeichnen?
Was darf da nicht null sein? Das Drehen (-90°) mache ich so, das funktioniert eigentlich schon immer problemlos? eM sind ja nichts ander als die cos/sin.
Delphi-Quellcode:
procedure TFemGraphic.SaveToDefaultEmfFile(const FileName: string);
begin
FMetafile.SaveToFile(FileName);
end;
procedure TFemGraphic.SaveToEmfFile(const FileName: string);
var
MF: TMetafile;
MC: TMetafileCanvas;
XForm: tagXFORM;
begin
if not FWantHaveRotate90 then
SaveToDefaultEmfFile(FileName)
else
begin // -90°;
MF := TMetafile.Create;
try
MF.Width := FMetafile.Height;
MF.Height := FMetafile.Width;
MC := TMetafileCanvas.Create(MF, 0);
try
XForm.eM11 := 0;
XForm.eM12 := -1;
XForm.eM21 := 1;
XForm.eM22 := 0;
XForm.eDx := 0;
XForm.eDy := FMetafile.Width;
SetGraphicsMode(MC.Handle, GM_ADVANCED);
SetWorldTransform(MC.Handle, XForm);
MC.Draw(0, 0, FMetafile);
finally
MC.Free;
end;
finally
MF.SaveToFile(FileName);
MF.Free;
end;
end;
end;