Einen Ausschnitt einer Metafile in eine Metafile kopieren.
Ich dachte eigentlich daß man das so eventuell machen könnte, geht aber nicht. Er kopiert so immer die ganze Metafile?
Delphi-Quellcode:
procedure TDrawPad.CopySelectedRectToClipboard(const SelectRect: TFloatRectEx);
var
ppMM: double;
Rect: TRect;
MF: TMetaFile;
MC: TMetaFileCanvas;
begin
if SelectRect.Angle = 0 then
begin
ppMM := PlotDevice[csDefault].ppMM;
Rect.Left := Round(ppMM * SelectRect.P1.X);
Rect.Top := Round(ppMM * SelectRect.P1.Y);
Rect.Right := Round(ppMM * SelectRect.P2.X);
Rect.Bottom := Round(ppMM * SelectRect.P2.Y);
MF := TMetaFile.Create;
try
MF.Width := Round(ppMM * SelectRect.Width);
MF.Height := Round(ppMM * SelectRect.Height);
MC := TMetaFileCanvas.Create(MF, 0);
try
MC.Draw(-Rect.Left, -Rect.Top, FMetaFile);
finally
MC.Free;
end;
Clipboard.Assign(MF);
MF.SaveToFile('Test.emf');
finally
MF.Free;
end;
end;
end;