Impressão da tela (Form)

Delphi

08/02/2007

Boa noite pessoal! blz?

Tenho essa função na qual ela imprime o TForm direto pra impressora, porém só em alguns computadores funcionam, alguem saberia o pq?
PrintForm
uses
  Windows, SysUtils, Printers, Forms, Graphics, Controls, Classes;
  .
  .
  .
procedure PrintForm(frm: TForm);
var
  bmp: TBitMap;
  x, y, WDPI, HDPI: Integer;
  OldColor: TColor;
begin
  Screen.Cursor := crHourGlass;
  OldColor := frm.Color;
  frm.Color := clWhite;
  frm.Update;
  bmp := frm.GetFormImage;
  with Printer do
  begin
  Orientation := poLandscape;
  BeginDoc;
  HDPI := PageHeight div 8;
  WDPI := PageWidth div 8;
  x := PageWidth - Round(WDPI * 0.4); {0.4" margem direita}
  y := PageHeight - Round(HDPI * 0.5); {0.5" Altura do rodapé}
  Canvas.StretchDraw(Rect(0, 0, x, y), bmp);
  EndDoc;
  end;
  bmp.Free;
  frm.Color := OldColor;
  Screen.Cursor := crDefault;
end;


Todos eram Win XP.


Facc

Facc

Curtidas 0

Respostas

Facc

Facc

08/02/2007

Alguém?


GOSTEI 0
Facc

Facc

08/02/2007

Pra akeles que precisarem

procedure TForm1.Button1Click(Sender: TObject);
var
  OldColor : TColor; // para armazenar a cor original do form
begin
  OldColor := Form1.Color;
  Form1.Color := clWhite; //muda pra branco, assim economiza tinta
  form1.print;
  Form1.Color := OldColor; //volta cor original
end;



GOSTEI 0
POSTAR