Ich weiß jetzt einfach nichtmehr weiter.
Ich möchte einen bestimmten Teil meines Formulars als Bitmap speichern und drucken .
Habe mal mein Formular als Screenshot mit angehängt.
Mein Problem ich möchte jetzt nur den weißen Bereich ausdrucken.
Habe schon folgendes Versuch:
- Chart1.PrintRect(rect1); => dabei wurden aber meine Editfelder nicht mitgedruck
- Form1.print; => gefällt mir nicht, da die Tab Captions und Buttons auch mit ausgedruckt werden
- und mein letztes Beispiel hier mal als Code => hier funktionierte zwar alles, habe ich das Programm auf einen anderen Computer aufgespielt, der einen anderen Monitor hatte, funktionierte es wieder nicht
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.Button7Click(Sender: TObject); var Bmp : TBitmap; WinDC, MemDC : hDC; Desktop : hBitmap; zx, zy : integer; begin zx := 920; zy := 345; WinDC := GetDC (GetDeskTopWindow); MemDC := CreateCompatibleDC (WinDC); Desktop := CreateCompatibleBitmap (WinDC, zx, zy); SelectObject (MemDC, Desktop); BitBlt (MemDC, 0, 0, zx, zy, WinDC, 170, 275, SRCCOPY); DeleteDC (MemDC); ReleaseDC (GetDeskTopWindow, WinDC); bmp := TBitmap.Create; try bmp.Handle := Desktop; finally printer.orientation:=polandscape; Printer.BeginDoc; Printer.Canvas.StretchDraw(RECT(24,72,Printer.PageWidth,Printer.PageHeight), BMP); Printer.EndDoc; FreeAndNil(bmp); end; end; |
Wie kann ich das also machen.
Vielleicht kann man ja aus einem TabSheet ein Bitmap machen, das wäre eine Lösung, weiß aber nicht wie das funktioniert.
Dachte ich eigentlich dass das so geht:
Delphi-Quelltext
1:
| BMP.Assign(Form1.TabSheet4.Brush.Create.Bitmap); |
Hoffe mir kann jemand weiterhelfen