代码之家  ›  专栏  ›  技术社区  ›  Zartog

我在哪里可以找到使用TMetafile和TMetafileCanvas的文档和/或示例?

  •  1
  • Zartog  · 技术社区  · 17 年前

    当我在为我的应用程序添加自定义打印时,我决定使用TMetafile创建页面,然后用它来预览和打印;/或者打印,但我发现缺少文件。

    有什么好的资源可以学习使用TMetafile和TMetafileCanvas的来龙去脉吗?

    3 回复  |  直到 17 年前
        1
  •  2
  •   PetriW    17 年前

    从我使用TMetaFile/Canvas的痛苦经历来看,使用TMetaFile/Canvas时的来龙去脉更多地与元文件有关,而不是与TMetaFile和TMetaFileCanvas实现有关。Aka,你应该寻找有关EMF(或WMF)如何工作的信息。Delphi实现只是调用windows来做我所理解的一切。

    您可能希望更具体地了解您需要知道的内容,而不仅仅是关于如何做到这一点的指南。

        2
  •  2
  •   Osama Al-Maadeed    17 年前

    这实际上比你想象的要简单。..

    以下是我的一些代码:

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

    我用它在fastreport中打印了一个图元文件。

        3
  •  0
  •   Scott W    17 年前

    我自己并没有深入研究,但我知道QuickReports代码在引擎盖下使用图元文件来创建打印预览并发送到打印机。如果你有这个来源,它可能会有所帮助。

    推荐文章
    GJ.  ·  TMetafileCanvas示例
    12 年前