Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Panel drucken
dTrace - Mo 23.06.03 22:52
Titel: Panel drucken
Hmm... ich habe versucht den Inhalt eines Panels zu drucken...aber irgendwie klappt dass nicht so richtig... Einige sagen, man soll es über den Canvas von Tpanel tun...aber irgendwie sehe ich keine Canvas Funktion von TPanel
dTrace :?:
AndyB - Mo 23.06.03 22:59
Dann musst du dir die Canvas selbst erstellen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var Canvas: TCanvas; begin Canvas := TCanvas.Create; try Canvas.Handle := GetDC(Panel1.Handle);
finally ReleaseDC(Panel1.Handle, Canvas.Handle); Canvas.Handle := 0; Canvas.Free; end; end; |
dTrace - Mo 23.06.03 23:08
Titel: panel drucken
Ok...danke :D
aber wie kann ich den Panel jetzt z.B. als BMP speichern...
ich habe folgenden Code der leider eine Fehlermeldung auslöst :(
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure speichern; var Canvas: Tcanvas; bmp: Tbitmap; begin canvas := Tcanvas.Create; bmp := Tbitmap.Create; try canvas.handle := Getdc(panel1.handle); bmp := canvas.brush.bitmap; bmp.savetofile('c:\bild.bmp');
finally ReleaseDC(panel1.handle, canvas.handle); canvas.handle := 0; canvas.free; bmp.free; end; end; |
Gruss: dTrace
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
AndyB - Di 24.06.03 00:27
Zitat: |
bmp := canvas.brush.bitmap; |
Was willst du denn mit dem Brush-Bitmap, das sowieso nirgends gesetzt wurde und somit auf nil zeigt?
Hast du schon mal was von Canvas.CopyRect() gehört? Wenn nicht: F1.
dTrace - Di 24.06.03 16:11
I :D
Problem teilweise gelöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure screensh; var canvas: Tcanvas; rec: Trect; begin canvas := Tcanvas.Create;
try canvas.handle := GetDc(panel1.handle); rec := Rect(panel1.width, panel1.height, 0,0); form1.canvas.copyrect(rec, canvas,rec);
finally canvas.free; end; end; |
weiteres Problem: Wie kann ich ein Screenshot vom Panel erzeugen, wenn das Panel so gross ist und außerhalb des Formulars befindet...ich kann im Formular hin und her scrollen und das Panel betrachten ... aber leider wird nur ein Screenshot von der sichtbaren Fläche erstellt :?:
Gruss: dTrace
AndyB - Di 24.06.03 16:21
Dann musst du dem Benutzer eben den unschönen Effekt des "automatischen Scrollens" zeigen.
dTrace - Di 24.06.03 16:25
AndyB hat folgendes geschrieben: |
Dann musst du dem Benutzer eben den unschönen Effekt des "automatischen Scrollens" zeigen. |
hmm... :?
naja...dieser Lösungsweg ist nicht gerade der beste...
ich habe eine andere Idee:
1. Ich werde aus dem Bereich mehrere Screenshots erstellen indem ich die Positionen angebe
2. danach wird das zerstückelte Formular zu einer Grafik zusammengefügt
3. danach speichern und drucken 8)
dTrace
AndyB - Di 24.06.03 17:08
Das meinte ich.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!