AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie drucke ich ein Image?????????

Ein Thema von Delphiman · begonnen am 6. Apr 2003
Antwort Antwort
Delphiman

Registriert seit: 6. Apr 2003
1 Beiträge
 
#1

Wie drucke ich ein Image?????????

  Alt 6. Apr 2003, 15:00
Ich habe ein recht einfachen Malprogramm programiert und komme überhaupt nicht mit der druckfuntion klar.
Und zwar male ich ja immer auf die image datei und diese soll der drucker nachher ausdrucken.
Ich gebe euch mal den quelltext und dann könnt ihr mir vielleicht sagen warum immer nur eine leere seite gedruckt wird
Delphi-Quellcode:
unit mMalprogramm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Buttons, StdCtrls, Printers;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Panel1: TPanel;
    NewButton: TSpeedButton;
    OpenButton: TSpeedButton;
    SaveButton: TSpeedButton;
    PenButton: TSpeedButton;
    LineButton: TSpeedButton;
    RectButton: TSpeedButton;
    CircleButton: TSpeedButton;
    EllipseButton: TSpeedButton;
    PenColorButton: TSpeedButton;
    BrushColorButton: TSpeedButton;
    ExitButton: TSpeedButton;
    PrinterInfoButton: TSpeedButton;
    PrintButton: TSpeedButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ColorDialog1: TColorDialog;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    PrintDialog1: TPrintDialog;
    procedure ExitButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure PenButtonClick(Sender: TObject);
    procedure LineButtonClick(Sender: TObject);
    procedure RectButtonClick(Sender: TObject);
    procedure CircleButtonClick(Sender: TObject);
    procedure EllipseButtonClick(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure PenColorButtonClick(Sender: TObject);
    procedure BrushColorButtonClick(Sender: TObject);
    procedure OpenButtonClick(Sender: TObject);
    procedure SaveButtonClick(Sender: TObject);
    procedure NewButtonClick(Sender: TObject);
    procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure ComboBox2DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure PrintButtonClick(Sender: TObject);
      private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var Grafikart : Integer;
    Stiftart : TPenStyle;
    Pinselart : TBrushStyle;
    Zeichnen : Boolean;
    Stiftfarbe,Pinselfarbe : TColor;
    x0,y0,x1,y1 : Integer;

procedure TForm1.ExitButtonClick(Sender: TObject);
begin
close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Grafikart:=1;
  Stiftfarbe:=clBlack;
  Pinselfarbe:=clBlack;
  Stiftart:=psSolid;
  Pinselart:=bsClear;
  Image1.Canvas.Pen.Color:=Stiftfarbe;
  ComboBox1.ItemIndex:=0;
  Pinselart:=bsClear;
  ComboBox2.itemIndex:=1;
end;

procedure TForm1.PenButtonClick(Sender: TObject);
begin
  Grafikart:=1;
end;

procedure TForm1.LineButtonClick(Sender: TObject);
begin
  Grafikart:=2;
end;

procedure TForm1.RectButtonClick(Sender: TObject);
begin
  Grafikart:=3;
end;

procedure TForm1.CircleButtonClick(Sender: TObject);
begin
  Grafikart:=4;
end;

procedure TForm1.EllipseButtonClick(Sender: TObject);
begin
  Grafikart:=5;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Zeichnen:=True;
  x0:=x; y0:=y;
  x1:=x; y1:=y;
  with Image1.Canvas do
    begin
      Pen.Color:=Stiftfarbe;
      Pen.Style:=Stiftart;
      Brush.Color:=Pinselfarbe;
      Brush.Style:=Pinselart;
      Moveto(x,y);
      if Grafikart=1
        then Pen.Mode:=pmCopy
        else Pen.Mode:=pmNotXor;
    end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var r,a,b : LongInt;
begin
  if Zeichnen then
    with Image1.Canvas do
      begin
        Case Grafikart of
          1 : Lineto(x,y);
          2 : begin
                MoveTo(x0,y0);
                LineTo(x1,y1);
                MoveTo(x0,y0);
                LineTo(x,y);
              end;
          3 : begin
               Rectangle(x0,y0,x1,y1);
               Rectangle(x0,y0,x,y);
              end;
          4 : begin
               r:=Round(Sqrt(Sqr(x1-x0)+Sqr(y1-y0)));
               Ellipse(x0-r,y0-r,x0+r,y0+r);
               r:=Round(Sqrt(Sqr(x-x0)+Sqr(y-y0)));
               Ellipse(x0-r,y0-r,x0+r,y0+r);
              end;
          5 : begin
               a:=Round(Sqrt(2)*(x1-x0));
               b:=Round(Sqrt(2)*(y1-y0));
               Ellipse(x0-a,y0-b,x0+a,y0+b);
               a:=Round(Sqrt(2)*(x-x0));
               b:=Round(Sqrt(2)*(y-y0));
               Ellipse(x0-a,y0-b,x0+a,y0+b);
              end;
         end;
         x1:=x;
         y1:=y;
      end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var r,a,b : LongInt;
begin
  Zeichnen:=False;
  with Image1.Canvas do
    begin
      Pen.Mode:=pmCopy;
      Case Grafikart of
        2: begin
             MoveTo(x0,y0);
             LineTo(x,y);
           end;
        3: Rectangle(x0,y0,x1,y1);
        4: begin
            r:=Round(Sqrt(Sqr(x1-x0)+Sqr(y1-y0)));
            Ellipse(x0-r,y0-r,x0+r,y0+r);
           end;
        5: begin
            a:=Round(Sqrt(2)*(x-x0));
            b:=Round(Sqrt(2)*(y-y0));
            Ellipse(x0-a,y0-b,x0+a,y0+b);
           end;
      end;
    end;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Case ComboBox1.ItemIndex of
    0 : Stiftart:=psSolid;
    1 : Stiftart:=psDash;
    2 : Stiftart:=psDot;
    3 : Stiftart:=psDashDot;
    4 : Stiftart:=psDashDotDot;
  end;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
Pinselart:=TBrushStyle(ComboBox2.ItemIndex);
end;

procedure TForm1.PenColorButtonClick(Sender: TObject);
begin
  if ColorDialog1.Execute then
     Stiftfarbe:=ColorDialog1.Color;
end;

procedure TForm1.BrushColorButtonClick(Sender: TObject);
begin
  if ColorDialog1.Execute then
     Pinselfarbe:=ColorDialog1.Color;
end;

procedure TForm1.OpenButtonClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
     Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;

procedure TForm1.SaveButtonClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
     Image1.Picture.SaveToFile(SaveDialog1.FileName);
end;

procedure TForm1.NewButtonClick(Sender: TObject);
begin
  with image1.Canvas do
    begin
      Pen.Color:=clWhite;
      Pen.Style:=psSolid;
      Brush.Color:=clWhite;
      Brush.Style:=bsSolid;
      Rectangle(0,0,Image1.Width, Image1.height);
    end;
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with ComboBox1.Canvas do
    begin
      Pen.Color:=clBlack;
      Pen.Style:=TPenStyle(Index);
      Brush.Color:=clWhite;
      FillRect(Rect);
      MoveTo(Rect.Left+5,Rect.Top+ComboBox1.ItemHeight div 2);
      LineTo(Rect.Right-5,Rect.Top+ComboBox1.ItemHeight div 2);
    end;
end;

procedure TForm1.ComboBox2DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with ComboBox2.Canvas do
    begin
      Pen.Color:=clBlack;
      Pen.Style:=psSolid;
      Brush.Color:=clBlack;
      Brush.Style:=TBrushStyle(Index);
      Rectangle(Rect.Left+1,Rect.Top+1,Rect.Right-1,Rect.Bottom-1)
    end;
end;



procedure TForm1.PrintButtonClick(Sender: TObject);

   begin
    printer.begindoc;
    printer.canvas.draw(1, 1, Image1.Picture.Graphic );
    printer.enddoc;
  end;

end.
Vielen Dank!!!!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:55 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