2013-06-05 36 views

cevap

7

Sen nEscape parametre olarak bunu ilk parametre olarak Printer.Canvas.Handle ve PASSTHROUGH geçen WinAPI işlevini Escape kullanın.

var 
    YourCommand: String; 
begin 
    YourComamnd := 'Your command here'; 

    if Escape(Printer.Canvas.Handle, 
       PASSTHROUGH, 
       Length(YourCommand), 
       PChar(YourCommand), 
       nil) <> 0 then 
    // Handle return value (listed in docs link above) 
    else 
    // send next command 

EscapeWindows ünite tanımlanmıştır. Yazıcı sürücüsünün içerik almasını sağlamak için bu işlevi kullanmadan önce Printer.StartPage numaralı telefonu aramanız gerektiğini unutmayın.

+0

Delphi XE3'te Printer.Canvas.Handle, Printer.Canvas.BufferHandle olur mu? –

+0

VCL.Printers içinde, yazıcının 'HDC' olan' Printer.Canvas.Handle'. Ben her yerde belgelerinde 'Canvas.BufferHandle' görmüyorum. VCL'yi kullanmıyorsanız, bunu söylemeli ve sorunuza uygun FireMonkey etiketini eklemelisiniz. :-) Sadece 'BufferHandle' bulundu ve hayır; Bu bir "Tılsım" ve "Kaçış", bir aygıt bağlamına (HDC) bir sap arıyor. –

+0

'FMX.Printer.Win.pas' kaynağına bakıldığında' TPrinter' için tanımlanmış bir 'Canvas' var. Windows uyumlu bir HDC'nin mevcut olup olmadığını bilmiyorum (bundan şüphe duyuyorum), fakat HDC dediği 'Printer.Handle' kullanabilirsiniz. 'Escape' ile çalışıp çalışmayacağını bilmiyorum, çünkü denemedim. –

İlgili konular