Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TImage: Bild mit TPrintDialog ausdrucken (https://www.delphipraxis.net/38381-timage-bild-mit-tprintdialog-ausdrucken.html)

Helmi 18. Jan 2005 14:53


TImage: Bild mit TPrintDialog ausdrucken
 
Hallo,

ich möchte mit einem TPrintDialog ein Bild eines TImage ausdrucken.

Da ich ja zuerst die DP-Suche mit einem Problem beschäftige, hab ich einen altenThread dazu gefunden.

Ich habe das wie folgt auf meine Bedürfnisse umgebaut:

Code:
private
  Bild_Dateiname: TFileName;

{ ... }

procedure TForm1.Menu_oeffnenClick(Sender: TObject);
begin
  //Bild öffnen
  If OpenPictureDialog.Execute then
    begin
      //ausgewählter Dateiname in Variable speichern
      Bild_Dateiname := OpenPictureDialog.FileName;

      //ausgewähltes Bild in das Image laden
      Image.Picture.LoadFromFile(Bild_Dateiname);
    end;
end;

procedure TForm1.Menu_DruckenClick(Sender: TObject);
var
  tf: TextFile;
begin
  if PrintDialog.Execute then
  begin
    AssignFile(tf, Bild_Dateiname);
    Rewrite(tf);
    WriteLn(tf, Bild_Dateiname);
  end;
  CloseFile(tf);
end;
Leider druckt der das Bild nicht.

Weiss jemand wie ich das umschreiben muss, damit der das Bild des Images druckt?

Luckie 18. Jan 2005 14:56

Re: TImage: Bild mit TPrintDialog ausdrucken
 
Umschreiben ist gut. Du musst eine komplette Druckroutine schreiben. Sprich du musst das Image auf dem Canvas des Druckers ausgeben. Stichworte wäre eventuell MSDN-Library durchsuchenBeginDoc und MSDN-Library durchsuchenEndDoc. Der Druckdialog druck nichts aus, sondern dient nur dazu den Drucker auszuwählen und dortige Einstellungen zurückzugeben.

Helmi 18. Jan 2005 15:58

Re: TImage: Bild mit TPrintDialog ausdrucken
 
Hallo,

ich hab mich mal etwas schlau gemacht und hab das so gelöst:

Code:
procedure TForm1.Menu_DruckenClick(Sender: TObject);
var
  ScaleX,
  ScaleY: Integer;
  R: TRect;

begin
  //PrintDialog annzeigen
  If PrintDialog.Execute then
    begin
      with Printer do
        begin
          //Anzahl der Kopien
          Copies   := PrintDialog.Copies;

          BeginDoc;

          try
            ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
            ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;

            R      := Rect(0, 0, Image.Picture.Width * ScaleX,
                            Image.Picture.Height * ScaleY);

            Canvas.StretchDraw(R, Image.Picture.Graphic);
          finally
            EndDoc;
          end;
        end;
    end;
end;

SiL_ 1. Jul 2007 21:42

Re: TImage: Bild mit TPrintDialog ausdrucken
 
Hallo

Ich habe das problem bei den Delphi code bei
Delphi-Quellcode:
with Printer do
er kennt den "befehl" 'Printer' nicht

MfG SiL_

bitsetter 1. Jul 2007 21:55

Re: TImage: Bild mit TPrintDialog ausdrucken
 
Hi,
Delphi-Quellcode:
uses printers;
hilft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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