AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Panel drucken inkl. Kompos

Ein Thema von capo · begonnen am 8. Jun 2007 · letzter Beitrag vom 11. Jun 2007
Antwort Antwort
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Panel drucken inkl. Kompos

  Alt 8. Jun 2007, 22:01
Hallo
Wie kann ich ein Panel drucken inkl. den darauf sitzenden Kompos?
Geht sowas überhaupt?
gruss vomm capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Panel drucken inkl. Kompos

  Alt 9. Jun 2007, 00:04
Moin moin,

kannst ja mal testen ob das was bringt:
Delphi-Quellcode:
uses Printers;

Procedure BildAusSchnitt(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer);
var
  c: TCanvas;
begin
  BringWindowToTop(hWND);
  c:= TCanvas.Create;
  c.Handle:= GetWindowDC(hWND);
  try
    printer.begindoc;
    printer.Canvas.CopyRect(Rect(0, 0, iWidth* 10, iHeight* 10), c, Rect(iLeft, iTop, iLeft+ iWidth, iTop+ iHeight));
    printer.enddoc;
  finally
    ReleaseDC(hWND, c.handle);
    c.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   BildAusSchnitt(Panel1.Handle, 0, 0, Panel1.Width, Panel1.Height);
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Panel drucken inkl. Kompos

  Alt 9. Jun 2007, 10:21
Das klappt nicht nur suupergut, sieht auch noch echt Klasse aus.
Danke
capo
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Panel drucken inkl. Kompos

  Alt 11. Jun 2007, 06:33
Noch eine Frage dazu, kann man auch die Position des Panels beim ausdrucken bestimmen?
Ich hab das so versucht:
printer.Canvas.CopyRect(Rect(200, 200, iWidth* 10, iHeight* 10), c, Rect(iLeft, iTop, iLeft+ iWidth, Merkwürdigerweise wird das Panel beim ausdrucken ab einem bestimmten Wert gestaucht/verzerrt dargestellt.
Capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Panel drucken inkl. Kompos

  Alt 11. Jun 2007, 08:33
Hallo,

dazu muss man das Ganze wohl etwas umbauen:
Delphi-Quellcode:
Procedure PrintWinControl(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer);
var
  c: TCanvas;
begin
  iLeft := iLeft * 10;
  iTop := iTop * 10;
  BringWindowToTop(hWND);
  c:= TCanvas.Create;
  c.Handle:= GetWindowDC(hWND);
  try
    printer.begindoc;
    //Windows.SetMapMode(printer.Canvas.Handle, MM_LOMETRIC);
    printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft + iWidth * 10, iTop + iHeight * 10), c, Rect(0, 0, iWidth, iHeight));
    printer.enddoc;
  finally
    ReleaseDC(hWND, c.handle);
    c.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   PrintWinControl(Panel1.Handle, 80, 140, Panel1.Width, Panel1.Height);
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Panel drucken inkl. Kompos

  Alt 11. Jun 2007, 11:42
Danke....habs sogar verstanden
Hotte
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz