Druck menü in C++



  • also entweder du schaust dir in der hilfe mal die methoden von TRichEdit an, oder von deinem PrintDialog(TPrintDialog?)!

    Da hast du auch beispiele die das erklären!



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke für eure Hilfe aber könnt ihr mir nicht einfach den Quellcode in C++ sagen? 😃



  • Könnt ihr ihn mir bitte geben???
    Es ist dringend! 😃



  • Kurth schrieb:

    Könnt ihr ihn mir bitte geben???
    Es ist dringend! 😃

    wieso schaust nicht einfach in die hilfe von bcb? wie oben gesagt wird hast du da codebeispiele.

    das dialogfenster öffnest mit excecute, dann mußt nur noch sagen was er drucken soll.

    und wenn dir alles vorgekaut wird, dann lernst es nie. 😉





  • Ich habe jetzt diesen Code gefunden:

    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
      { Druckbereich festlegen }
      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 den gewünschten Bereich 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;
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    
    {
      PrintDialog1->Options.Clear();
      PrintDialog1->Options << poPageNums << poSelection;
      PrintDialog1->FromPage = 1;
      PrintDialog1->MinPage = 1;
      PrintDialog1->ToPage = PageControl1->PageCount;
      PrintDialog1->MaxPage = PageControl1->PageCount;
      if (PrintDialog1->Execute())
      {
        int Start, Stop;
        // Vom Benutzer gewünschten Druckbereich ermitteln
        switch (PrintDialog1->PrintRange)
        {
          case prSelection:
    
            Start = PageControl1->ActivePage->PageIndex;
            Stop = Start;
            break;
          case prPageNums:
            Start = PrintDialog1->FromPage - 1;
            Stop =  PrintDialog1->ToPage - 1;
            break;
          default:  // prAllPages
            Start = PrintDialog1->MinPage - 1;
            Stop = PrintDialog1->MaxPage - 1;
            break;
        }
        // Seiten drucken
        Printer()->BeginDoc();
        for (int i = Start; i <= Stop; i++)
    
        {
          PageControl1->Pages[i]->PaintTo(Printer()->Handle, 10, 10);
          if (i != Stop)
            Printer()->NewPage();
        }
        Printer()->EndDoc();
      }
    }
    

    1. procedure wird immer angestrichen
    2. wie füge ich diesen button1klick ein?



  • Hallo

    1. procedure wird immer angestrichen

    Und das heißt in Detail? Merke : Nur für präziße Fragen gibt es präzise Antworten.

    2. wie füge ich diesen button1klick ein?

    Über den Objektinspektor. Gehört zu den Builder-Grundlagen...

    Der Code ist übrigens in Delphi, und müßte auch erstmal übersetzt werden.

    bis bald
    akari



  • Würde mich jetzt interessieren:

    Was spricht gegen den Code von meinem Link?

    Was kann dort verbessert werden?



  • @ Christian211: Es spricht nichts gegen deinen Link er ist sogar sehr gut. Nur ich habe das ganze Programm mit einem TRichEdit und nicht mit einem Memo geschrieben.



  • Und du hast unterschiedlich formatierten Text da drin??



  • So...
    Das Problem ist gelöst!
    Ich habe mich nur dumm angestellt 😃
    Danke für den Link Christian211 und danke für die Hilfe aller anderen.
    Bis zur nächsten Frage! 😋 🙂


Anmelden zum Antworten