Hallo,
ich bräuchte noch einmal Hilfe:
Ich habe auf einem
Panel verschiedene Elemente. Daneben ist ein Button "
Drucken".
Dieser Button ruft jetzt den Printdialog auf, der das gesamte
Panel drucken soll.
Habe gegooglet und folgende Variante möchte ich benutzen:
Delphi-Quellcode:
Procedure TForm1.BildAusSchnitt(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer);
var
c: TCanvas;
begin
BringWindowToTop(hWND);
c:= TCanvas.Create;
c.Handle:= GetWindowDC(hWND);
try
Printer.Orientation:=polandscape;
printer.BeginDoc;
printer.Canvas.CopyRect(Rect(0, 0, iWidth* 10, iHeight* 10), c, Rect(iLeft, iTop, iLeft+ iWidth, iTop+ iHeight));
printer.EndDoc;
finally
ReleaseDC(hWND, c.handle);
c.Free;
end;
end;
Das klappt soweit auch, doch ist das Ergebnis nicht in Ordnung:
Man sieht nur die Hälfte, da das
Panel wahrscheinlich zu groß ist (Mehr als 1000 Pixel breit)
1.: Wie kann ich den
Druck so optimieren, dass das
Panel automatisch auf die Größe des Blattes "verkleinert" wird?
2.: Ich möchte gerne über den im Dialog ausgewählten Drucker
drucken. Was muss ich dafür noch tun?
Liebe Grüße!