Announcement

Collapse
No announcement yet.

TPrinter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TPrinter

    Hallo zusammen!

    Kann man mit TPrinter Text rechtsbündig ausrichten? Ich habe das jetzt damit gelöst, <br>daß Leerzeichen davorgesetzt werden. <br>Aber vielleicht gibt es noch irgendeine einfachere Lösung?

    Gruß Irmgard

  • #2
    Hi Irmgard!<br>

    Mit Editor->Paragraph->Alignment= taRightJustify kannst Du<br>
    den Text nach rechts ausrichten.Bei fertigen Text erst alles<br>
    markieren und dann ausrichten.<br>

    Gruß Fre

    Comment


    • #3
      Hallo Fred!

      Vielen Dank, werde ich mal ausprobieren. Wenn ich nicht zurechtkomme,<br>melde ich mich nochmal.

      Gruß Irmgar

      Comment


      • #4
        Da haben wir's schon!

        Mit TextOut will ich Zahlen ausgeben:

        Printer()->Canvas->TextOut(spalte,zeile,zahlen);

        Wie setze ich da jetzt Editor ein? Mit der Online-Hilfe komme ich da auch nicht weiter.

        Gruß Irmgar

        Comment


        • #5
          Verwende doch die API-Funktion DrawText()

          Comment


          • #6
            Dirk,

            ich habe das selbe Problem mit den rechtsbündigen Zahlen bei Printer.Canvas.TextOut... könntest Du ein kleines Code-Beispiel für DrawText geben? Ich komme mit der Online-Hilfe nicht so recht klar.

            Danke!

            Ralp

            Comment


            • #7
              Hi Leute,<br>
              wenn man weiß wo das rechte Ende ist (in der Regel: Printer()->Pagewidth) kann der Text doch einfach mit,

              int x = Printer()->PageWidth;<br>
              int len = Printer()->Canvas->TextWidth(Help);<br>

              Printer()->Canvas->TextOut(x-len,y,Help);

              ausgeben.

              Bye - Pete

              Comment


              • #8
                Hallo Peter!

                Das ist in meinem Fall nicht möglich, weil es mehrere Spalten gibt. Im Moment habe ich es noch bei meiner ursprünglichen Lösung mit den Leerzeichen gelassen. Wenn ich Zeit habe, versuche ich es mal mit DrawText() in der Hoffnung, daß es klappt (ich müßte mich mal mehr mit WINAPI beschäftigen!)

                Gruß Irmgar

                Comment


                • #9
                  //Beispiel für DrawText :

                  int LineHeight = Printer()->Canvas->TextHeight("Text");

                  TRect rect;
                  Printer()->BeginDoc();
                  rect.Left = 20;
                  rect.Right = Printer()->PageWidth - 20;
                  rect.Top = 50;
                  rect.Bottom = 50 + LineHeight ;

                  DrawText(Printer()->Handle,"Text", -1,(RECT*)&rect, DT_RIGHT);

                  Printer()->EndDoc();

                  //DT_BOTTOM,DT_CENTER,DT_LEFT ebenso möglich

                  Comment


                  • #10
                    Hi Irmgard,
                    auch mehrere Spalten sollten kein Problem sein. Du kannst doch sicher leicht die rechte Grenze jeder Spalte berechnen oder kennst sie in deinem Programm. Davon zieht du einfach immer die Weite des zu druckenden Textes ab.
                    Allerdings sieht das Draw-Text-Beispiel auch nicht schlecht aus. Das werde ich demnächst mal ausprobieren.
                    Bye - Pete

                    Comment


                    • #11
                      Vielen Dank Euch allen für die Hilfe!

                      Gruß Irmgar

                      Comment

                      Working...
                      X