Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: SynPdf - ungültige Gleitkommaoperation

  Alt 13. Okt 2016, 17:24
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;
  Mit Zitat antworten Zitat