Это на самом деле проще, чем вы думаете ...
вот мой код:
var
m: TMetafile;
mc: TMetafileCanvas;
begin
m := TMetafile.Create;
m.Width := 1000;
m.Height := 1000;
mc := TMetafileCanvas.Create(m, 0);
//use mc just like any canvas...
mc.Free;
// you can use m for anything you want, preview, print, save ...etc.
end;
Чтобы скопировать метафайл в буфер обмена:
Clipboard.Assign(m);
Для сохранения в файл emf:
m.SaveToFile(filename);
Я использовал это для печати метафайла в быстром отчете.