Где я могу найти документацию и / или примеры работы с TMetafile и TMetafileCanvas? - PullRequest
1 голос
/ 21 января 2009

Поскольку я работаю над добавлением пользовательской печати в свое приложение, я остановился на использовании TMetafile для создания страниц, а затем на предварительном просмотре и / или печати, но мне не хватает документации.

Есть ли какие-нибудь полезные ресурсы для изучения тонкостей работы с TMetafile и TMetafileCanvas?

Ответы [ 3 ]

2 голосов
/ 30 января 2009

Это на самом деле проще, чем вы думаете ...

вот мой код:

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);

Я использовал это для печати метафайла в быстром отчете.

2 голосов
/ 21 января 2009

Преимущества работы с TMetaFile / Canvas больше связаны с метафайлами, чем с реализациями TMetaFile и TMetaFileCanvas из моего травмирующего опыта работы с ним. Ака, вы должны искать информацию о том, как работает EMF (или WMF). Реализация Delphi просто вызывает Windows, чтобы сделать все, как я понимаю.

Возможно, вы захотите конкретизировать, что именно вам нужно знать, хотя помимо руководства по тому, как это сделать.

0 голосов
/ 21 января 2009

Я сам не слишком разбирался в этом, но я знаю, что код QuickReports использует метафайлы под крышкой для создания предварительного просмотра и отправки на принтер. Если у вас есть источник для этого, это может быть полезно.

...