![]() |
Gesamte Formular ausdrucken
Hallo,
wie kann ich ein Formular ausdrucken, bei dem ein Teil außerhalb der Bildschirmanzeige liegt? Momentan wird nur der sichtbare Bereich ausgedruckt, ich möchte aber alles. |
AW: Gesamte Formular ausdrucken
Wie machst du es denn bisher?
|
AW: Gesamte Formular ausdrucken
einfach
Delphi-Quellcode:
Das Formular erzeug ich erst zur Laufzeit.
Formular.Print
Leider wird nur der sichtbare Bereich ausgedruckt. |
AW: Gesamte Formular ausdrucken
Ich habe mir da früher mal was gebastelt - finde es aber leider nicht mehr.
- Bitmap in Gesamtgröße erzeugt - PaintBox über den Scrollbereich - Scrollpositition auf 0,0 - Canvas der PaintBox in das Bitmap kopiert - Scrollbereich nach rechts verschieben, Canvas wieder kopieren (bis Ende) - ggf. Scrollbereich nach links und 1 "Zeile" tiefer ... so lange bis alles kopiert ist Ob es bessere Lösungen gibt kann ich nicht sagen. Es hatte damals zumindest funktioniert. Dann solltest Du Dir vielleicht nun doch ein Report-Tool anschauen. Ist sicher nicht schwieriger als o.g. Funktion zu bauen... |
AW: Gesamte Formular ausdrucken
uff :)
Habe mir gedacht, des Problem ist schnell zu beheben, aber dass es keine passende Funktion gibt :o Jetzte muss ich mir was einfallen lassen, muss das noch irgendwie wie morgen hinbekommen ^^ |
AW: Gesamte Formular ausdrucken
Notlösung wäre: Bildschirmauflösung auf 2560*1600 :wink:
|
AW: Gesamte Formular ausdrucken
Wäre eine Notlösung, welche nicht wirklich gut ist^^.
Man man man, wieso gibt es ausgerechnet für dieses Problem, keine Funktion ... :cry: |
AW: Gesamte Formular ausdrucken
Hallo MetallicWar,
schau mal hier, das könnte Dir vielleicht helfen...: ![]() Grüße, blauweiss |
AW: Gesamte Formular ausdrucken
Hallo,
ich nehme mal an du wolltest mich auf diesen Code hinweisen? Lieg ich richtig?
Delphi-Quellcode:
Und eben sagen, anstatt nen Screenshot vom Unsichtbaren zu machen soll er mir das unsichtbare auch noch mit ausdrucken?
Mit folgender Routine kann man auch von unsichtbaren Formularen Screenshots erzeugen:
zusammenfalten · markieren Delphi-Quellcode: procedure PrintWindow(Wnd: HWND; ATo: TBitmap); var hDCMem : HDC; DC : HDC; rect : TRect; bmp : HBITMAP; hOld : HGDIOBJ; begin hDCMem:=CreateCompatibleDC(0); GetWindowRect(Wnd, rect); bmp:=0; DC:= GetDC(Wnd); bmp:= CreateCompatibleBitmap(DC, rect.Right-rect.Left, rect.Bottom-rect.Top); ReleaseDC(Wnd, DC); hOld:=SelectObject(hDCMem, bmp); SendMessage(wnd, wm_Print, hDCMem, PRF_CHILDREN or PRF_CLIENT or PRF_ERASEBKGND or PRF_NONCLIENT or PRF_OWNED); selectObject(hDCMem, hold); DeleteObject(hDCMem); ATo.FreeImage; ATo.Handle:=bmp; end; |
AW: Gesamte Formular ausdrucken
Zitat:
Gruss blauweiss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz