AGB  ·  Datenschutz  ·  Impressum  







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

Drucken mit Dialog

Offene Frage von "EDatabaseError"
Ein Thema von EDatabaseError · begonnen am 19. Mär 2006 · letzter Beitrag vom 19. Mär 2006
Antwort Antwort
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#1

Drucken mit Dialog

  Alt 19. Mär 2006, 15:02
In der ganzen Code-Library keinen Beitrag der Beschreibt wie man einen Text mit einem PrinterDialog ausdrucken kann. Könnte mir jmd. dazu ein bisschen Code posten? Wäre echt nett. Mfg Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Drucken mit Dialog

  Alt 19. Mär 2006, 15:32
Hallo Tobi,

der PrinterDialog druckt nicht - das musst schon du machen. Mit dem Dialog gibst du dem Benutzer deines Programms die Möglichkeit einen Drucker und diverse Optionen zu wählen. Was genau willst du drucken? Hast du ein fertiges Dokument oder wird das zu druckende Dokument dynamisch erzeugt?

Grüße vom marabu
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Drucken mit Dialog

  Alt 19. Mär 2006, 15:34
Ich hab ein memo mit text das Raus mut. Klar das der Dialog nur zur auswahl ist war glaub nur ein bisschen falsch formuliert. Aber ich habe keine Ahnung wie ich das anstellen soll.

Mfg
Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Drucken mit Dialog

  Alt 19. Mär 2006, 15:35
Hi,
ist garnicht so verwunderlich, denn mit dem Dialog direkt kannst du natürlich nicht drucken. Der dient halt nur der Auswahl des Druckers. Das eigentliche Drucken findet über die Ausgabe auf einem Printcanvas statt. Der verhält sich genauso, wie ein normaler Canvas, ausser dass die Ausgabe natürlich gedruckt wird.
Ein einfaches Beispiel wie du mit Dialog und Canvas arbeitest findest du in der Delphi Hilfe

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);

var
  I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute then
  begin
    { Ausgewählten Druckbereich ermitteln }
    with PrintDialog1 do
    begin
      if PrintRange = prAllPages then

        begin
        Start := MinPage - 1;
        Stop := MaxPage - 1;
      end
      else if PrintRange = prSelection then
      begin
        Start := PageControl1.ActivePage.PageIndex;
        Stop := Start;
        end
      else { PrintRange = prPageNums }
      begin
        Start := FromPage - 1;
        Stop := ToPage - 1;
      end;
    end;
    { Jetzt die Seiten drucken }

    with Printer do
    begin
      BeginDoc;
      for I := Start to Stop do
      begin
        PageControl1.Pages[I].PaintTo(Handle, 10, 10);
        if I <> Stop then
          NewPage;
      end;
      EndDoc;
    end;
  end;

end;
Gruß Der Unwissende

[Edit]Ok, dass mit der Auswahl kam jetzt auch schon von dir, sorry für die Redundanz[/Edit]
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Drucken mit Dialog

  Alt 19. Mär 2006, 15:42
Zitat von Der_Unwissende:
Hi,
ist garnicht so verwunderlich, denn mit dem Dialog direkt kannst du natürlich nicht drucken. Der dient halt nur der Auswahl des Druckers. Das eigentliche Drucken findet über die Ausgabe auf einem Printcanvas statt. Der verhält sich genauso, wie ein normaler Canvas, ausser dass die Ausgabe natürlich gedruckt wird.
Ein einfaches Beispiel wie du mit Dialog und Canvas arbeitest findest du in der Delphi Hilfe

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);

var
  I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute then
  begin
    { Ausgewählten Druckbereich ermitteln }
    with PrintDialog1 do
    begin
      if PrintRange = prAllPages then

        begin
        Start := MinPage - 1;
        Stop := MaxPage - 1;
      end
      else if PrintRange = prSelection then
      begin
        Start := PageControl1.ActivePage.PageIndex;
        Stop := Start;
        end
      else { PrintRange = prPageNums }
      begin
        Start := FromPage - 1;
        Stop := ToPage - 1;
      end;
    end;
    { Jetzt die Seiten drucken }

    with Printer do
    begin
      BeginDoc;
      for I := Start to Stop do
      begin
        PageControl1.Pages[I].PaintTo(Handle, 10, 10);
        if I <> Stop then
          NewPage;
      end;
      EndDoc;
    end;
  end;

end;
Gruß Der Unwissende

[Edit]Ok, dass mit der Auswahl kam jetzt auch schon von dir, sorry für die Redundanz[/Edit]
Und wo definiert man was gedruckt wird? Das bsp. sieht aus als wäre es für ein ganzes Form.


Mfg
Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Drucken mit Dialog

  Alt 19. Mär 2006, 16:14
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);

var
  r: TRect;
  i: Integer;
begin
  with Printer do
    begin
      r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
      BeginDoc;
      for i := 0 to Memo1.Lines.Count do
       Canvas.TextOut(200,200 + (i *
Canvas.TextHeight(Memo1.Lines.Strings[i])),
                                   Memo1.Lines.Strings[i]);
      Canvas.Brush.Color := clBlack;
      Canvas.FrameRect(r);
      EndDoc;
    end;

end;
Das Drucken geht aber wie bau ich den Dialog ein?


Mfg
Tobi
Tobias
It's not a bug, it's a feature.
  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:11 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