Wie drucken?



  • Ich hab schon gesucht und in der Borland-Hilfe nachgeguckt, aber nix gefunden...

    Also:
    Wie kann man ein RichEdit drucken?
    Wichtig ist, dass der Druckdialog erscheint, d.h. dass man auswählen kann mit welchem Drucker das RichEdit gedruckt wird, und wie das geht hab ich noch nicht rausgefunden.
    Bisher hatte ich:

    diesdruck->Print(Form1->Caption)
    

    aber da wird kein Druckdialog angezeigt...
    Ich glaube da muss man irgendwas mit BeginDoc() und EndDoc() machen, oder?



  • Guck mal in der Hilfe:
    1. TPrintDialog::Execute()
    2. Globale Variable: Printer
    Beide Einträge haben ein Beispiel.



  • Beachte aber, dass der PrintDialog selbst nichts festlegt, sondern nur die Wünsche des Anwenders entgegennimmt. Das musst du dann auslesen und deine Druckroutinen entsprechend anpassen.



  • Das Problem ist, dass ich zwar so ungefähr weiß, was ich hinschreiben muss, aber leider noch nichts Konkretes gefunden hab.

    Ich stell mir das ungefähr so vor:

    ...onbuttonclick...
    {
        Printer()->BeginDoc();
            ### hier definieren, was gedruckt wird - nur wie??? ###
        Printer()->EndDoc();
        druckdialog->Execute();
    }
    

    Wie kann ich jetzt den Druckbereich definieren (Ein ganzes RichEdit-Feld namens "diesdruck")? Und stimmt das oben überhaupt? Jedenfalls wird kein Fehler gemeldet...



  • Hmmm, also willst Du erstmal was drucken und anschließend dann auch den Druckerdialog anzeigen, um Einstellungen vorzunehmen *grübel*

    Ansonsten steht ja alles in der Hilfe, wie ich bereits einmal schrieb. Den Quellcode dort kannst Du fast wörtlich übernehmen, um Dein RichEdit auszudrucken:

    TPrinter Prntr = Printer();
      TRect r = Rect(200,200,Prntr->PageWidth – 200,Prntr->PageHeight – 200);
      Prntr->BeginDoc();
      Prntr->Canvas->TextRect(r, 200, 200, Memo1->Lines->Text);
      Prntr->EndDoc();
    


  • Toller Code zum drucken eines RichEdits ....
    🙄



  • bcler schrieb:

    Toller Code zum drucken eines RichEdits ....
    🙄

    Vor Inbetriebnahme des Mundwerks: Gehirn einschalten!!!

    Ich schrieb:

    Den Quellcode dort kannst Du fast wörtlich übernehmen, um Dein RichEdit auszudrucken



  • Leider hast du wohl noch nicht verstanden, worum es hier geht. Den Code kann man noch nicht mal Ansatzweise empfehlen.
    Überleg dir lieber mal was die Methode 'Print' beim RE wohl macht.



  • Print druckt den Inhalt des RichEdit, ohne Möglichkeit, die Druckparameter (Randbreite o.ä.) zu beeinflussen.
    Deshalb ist der Weg über TPrinter durchaus empfehlenswert.

    In Zukunft schnodderige Kommentare bitte immer gleich mit Begründung versehen.
    Und das Zitieren von Beiträgen bitte auf das Notwendigste beschränken. Danke!



  • Randbreite oder ähnliches zu beeinflussen ist hier nicht erfordert.
    Bitte überflüssige Kommentare unterlassen.
    Punkt.



  • Es schadet nie, alternative Lösungsansätze zu kennen, insbesondere, wenn diese zusätzliche Möglichkeiten eröffnen.

    bcler schrieb:

    Bitte überflüssige Kommentare unterlassen.

    Das sollte Leitsatz für dein eigenes Handeln werden.



  • Es schadet nie, alternative Lösungsansätze zu kennen, insbesondere, wenn diese zusätzliche Möglichkeiten eröffnen.

    Achso. Dann kann man auch noch erwähnen, das er das auch mit einem Report wie z.B. QuickReport drucken kann.

    Das sollte Leitsatz für dein eigenes Handeln werden.

    Bitte versuch erst mal dein eigenes Handeln zu analysieren.



  • Habe gerade mal TRichEdit::Print ausprobiert ... wenn das nicht noch ganz viel versteckte Möglichkeiten enthält, die ich in der Kürze übersehen habe, ist das schlicht und ergreifend unbrauchbar.



  • Absolut brauchbar für einen reinen Ausdruck.
    Aber ich rechne dir hoch an, das du dich wenigstens jetzt über dir nicht bekannte Methoden informierst.



  • bcler schrieb:

    Achso. Dann kann man auch noch erwähnen, das er das auch mit einem Report wie z.B. QuickReport drucken kann.

    Das ist ein akzeptabler Vorschlag, sofern die Komponenten vorhanden sind. Insbesondere, wenn der RichEdit-Inhalt dynamisch generiert wird.

    Bzgl. des Handelns: als Moderator fühle ich mich natürlich verpflichtet, zu analysieren, was z.B. das Löschen von OffTopic-Kommentaren bewirkt.
    Ich hoffe, der Wink mit dem Zaunpfahl war verständlich. Wenn nicht, Pech gehabt. 🙂

    Christian:
    Bitte verfall nicht in den gleich Trott. Wenn du einen Vorschlag als unbrauchbar klassifizierst dann schreibe auch, warum genau er deiner Meinung nach unbrauchbar ist.



  • Klar, werd ich in Zukunft machen.

    In diesem Fall lag das vor allem daran, weil das bißchen Beispieltext, welches ich verwendet hatte, ganz mickrig in der äußersten links oberen Ecke zusammengequetscht war und die Zeilenaufteilung gar nicht beachtet wurde (alles stand in einer Zeile).



  • Es geht mir nur um die Auswahl des Druckers im Druckdialog, nicht um die anderen Einstellungen. Wenn man nämlich einfach nur

    diesdruck->Print(Form1->Caption);
    

    schreibt, benutzt der PC immer den Standartdrucker und das soll nicht.



  • tschuldigung,
    ich weiß nicht warum, aber falscher thread...



  • achso, doch nicht,
    hab nur nicht gesehen, dass der thread 2 seiten lang ist!

    naja,
    kann vielleicht mal jemand einen konkreten Vorschlag posten, was ich machen soll?
    wie gesagt will ich das ganze richedit-feld ohne zusätzliche einstellungen drucken, nur halt nicht mit dem standartdrucker.



  • if (PrintDialog1->Execute())
    {
       RichEdit1->Print("RichEdit");
    }
    

Anmelden zum Antworten