Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 09.08.06 14:52 
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
ausblenden 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); {Bildschirmkontext holen}
  MemDC := CreateCompatibleDC (WinDC); {Kompatiblen Kontext erstellen}
  Desktop := CreateCompatibleBitmap (WinDC, zx, zy); {Bitmaphandle machen}
  SelectObject (MemDC, Desktop); {selektieren}
  BitBlt (MemDC, 0, 0, zx, zy, WinDC, 170, 275, SRCCOPY); {kopieren}
  DeleteDC (MemDC); {und wech damit}
  ReleaseDC (GetDeskTopWindow, WinDC); {diesen auch}
  bmp := TBitmap.Create;
  try
    bmp.Handle := Desktop;
    //Image1.Picture.Bitmap.Assign(bmp);
  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:
ausblenden Delphi-Quelltext
1:
BMP.Assign(Form1.TabSheet4.Brush.Create.Bitmap);					


Hoffe mir kann jemand weiterhelfen

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Mi 09.08.06 14:55 
Hi!
Ich kann keinen angehängten Screenshot finden, poste den bitte mal :)
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 09.08.06 15:40 
Sorry hatte ich vergessen
Einloggen, um Attachments anzusehen!
_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Mi 09.08.06 15:52 
also wenn's garned anders geht könntest du ne screen vom Formular machen und dir dann den Teil des Charts (Postition und Größe kennste ja) rauszukopieren... Code dazu findest du genug im Forum..
Haste vlt mal gekuckt ob das Chart ned ne Druckroutine zur Verfügung stellt?

mfg
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 09.08.06 18:05 
ja doch das hat es, ich habe aber noch zwei edit felder auf meinem chart die ich auch ausgedruckt haben möchte.
Diese werden aber beim Drucken des Chart ignoriert

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Mi 09.08.06 18:23 
aso klar, dann wird dir wohl nix anderes übrig bleiben wie aus dem chart ne bliddatei zu machen... Haste mal geguckt ob das Chart vlt sogar erlaub seinen inhalt als bild irgendwie zu speichern?
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 09.08.06 19:15 
Ich hab keine Ahnung wo ich da schauen soll und nach was ich schauen soll

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mi 09.08.06 22:33 
hallo,

versuchs mal damit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var aPoint : TPoint;
begin
  Printer.beginDoc;
  aPoint := Point(TabSheet2.Left,TabSheet2.Top);
  aPoint := ScreenToClient(Pagecontrol1.ClientToScreen(aPoint));
  Printer.Canvas.CopyRect(Rect(50,50,TabSheet2.Width+50,TabSheet2.Height+50),
                         Canvas,
                         Rect(aPoint.x,aPoint.y,
                              TabSheet2.Width+aPoint.x,
                              TabSheet2.Height+aPoint.y));
   Printer.EndDoc;

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )