Thema: Delphi Druckervorschau

Einzelnen Beitrag anzeigen

Thunderman

Registriert seit: 14. Jun 2002
Ort: Lüneburg
13 Beiträge
 
#9

Re: Druckervorschau

  Alt 23. Jan 2005, 10:55
Hallo!

Das mit auf einer Form zeichnen ändert in diesem Falle nichts, da das Canvas des TPrinter Objekts ein anderes Format hat. Wennn es überhaupt geht, muss man wahrscheinlich das ganze in etwa so lösen:
Delphi-Quellcode:
var
  h_DC, hdc_mem, temp : HDC;
begin
  h_DC := GetDC(Form1.Handle);
  hdc_mem := CreateCompatibleDC(h_DC);
  temp := SelectObject(hdc_mem, Printer.Canvas.Handle);
  BitBlt(h_DC, 0, 0, Breite, Hoehe, hdc_mem, 0, 0, SRCCOPY);
  SelectObject(hdc_mem, temp);
  DeleteDC(hdc_mem);
  ReleaseDC(Form1.Handle, h_DC);
Sicher bin ich mir dabei jetzt aber nicht, da ich das ganze gerade nicht in Delphi testen kann. Aber vielleicht guckt ja hier noch jemand rein, der etwas vesierter mit den GDI Funktionen ist. Ansonsten würde ich eine Druckfunktion erstellen, die ein TCanvas als Parameter übernimmt und dann auf diesem alles ausgibt. Dann ruft man diese zuerst mit dem Canvas der Druckvorschau auf und anschließend wenn der Nutzer OK drückt eben mit dem Printer-Canvas. Da sollte man aber natürlich nicht vergessen dann BeginDoc und EndDoc aufzurufen.
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
  Mit Zitat antworten Zitat