Autor Beitrag
dTrace
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 5 Enterprise
BeitragVerfasst: Mo 23.06.03 22:52 
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

ausblenden Delphi-Quelltext
1:
Panel1.canvas    // ?????? gibt es nicht					


dTrace :?:

_________________
Wenn du aufsteigen willst, dann solltest du es mit dem Wind tun.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mo 23.06.03 22:59 
Dann musst du dir die Canvas selbst erstellen.
ausblenden 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);

    // hier hast du die Canvas
    
  finally
    ReleaseDC(Panel1.Handle, Canvas.Handle);
    Canvas.Handle := 0;
    Canvas.Free;
  end;
end;

_________________
Ist Zeit wirklich Geld?
dTrace Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 5 Enterprise
BeitragVerfasst: 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 :(
ausblenden 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; //hier ist glaube ich der Fehler
   bmp.savetofile('c:\bild.bmp');

  finally
   ReleaseDC(panel1.handle, canvas.handle);
   canvas.handle := 0
   canvas.free;
   bmp.free;
 end;
end;

Gruss: dTrace

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.

_________________
Wenn du aufsteigen willst, dann solltest du es mit dem Wind tun.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: 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.

_________________
Ist Zeit wirklich Geld?
dTrace Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 5 Enterprise
BeitragVerfasst: Di 24.06.03 16:11 
I :D
Problem teilweise gelöst:

ausblenden 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

_________________
Wenn du aufsteigen willst, dann solltest du es mit dem Wind tun.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 24.06.03 16:21 
Dann musst du dem Benutzer eben den unschönen Effekt des "automatischen Scrollens" zeigen.

_________________
Ist Zeit wirklich Geld?
dTrace Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 5 Enterprise
BeitragVerfasst: 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

_________________
Wenn du aufsteigen willst, dann solltest du es mit dem Wind tun.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 24.06.03 17:08 
Das meinte ich.

_________________
Ist Zeit wirklich Geld?