一千萬個為什麽

搜索

請使用TPrinter的本地實例

我需要使用TPrinter進行一些打印。問題是由於各種原因,我不能使用Global object Printer。

我希望能夠創建我的TPrinter實例並使用該實例進行打印。

我嘗試過:

MyPrinter := TPrinter.Create;
MyPrinter.BeginDoc;

但這會產生AV。

知道使用我的TPrinter實例打印東西需要什麽?

問候 Goran Nagy

最佳答案

TPrinter 對象並非真正設計為在本地創建,而是設計用於 Printers 中的'singleton'函數 Printer 。單元。通常你會使用它。

從幫助:

使用TPrinter管理應用程序執行的任何打印。通過調用打印機單元中的打印機功能獲取TPrinter的實例。

Edit: Actually, having had a think you could do something like this:

procedure PrintThings;
var
  LMyPrinter: TPrinter;
  LOldPrinter: TPrinter;
begin
  LMyPrinter := TPrinter.Create;
  try
    LOldPrinter := SetPrinter(LMyPrinter);
    try

     //your printing code goes here

    finally
      SetPrinter(LOldPrinter);
    end;
  finally
    LMyPrinter.Free;
  end;
end;

轉載註明原文: 請使用TPrinter的本地實例