WPAT_Alignment = 2 bei wpobjTextObject

  • Wenn ich im Footer einer Tabelle ein Textobjekt platziere und es rechtsbündig ausrichte (Preise und Überträge sollen rechtsbündig sein)

    Code
     else if ColNr = 3 then
        begin
          field := par.AppendNewObject(wpobjTextObject);
          field.Name := 'PAINT_CALC';
          field.Source := 'Uebertrag';
          par.ASet(WPAT_Alignment, 2);
        end;

    dann stimmt die Formatierung nicht, das Gleiche gilt für zentrierte Darstellung.

    Rechtsbündig: Ab einer bestimmten Textlänge wächst der Text rechts aus der Zelle heraus, obwohl links noch Platz ist

    Zentriert: Ab einer bestimmten Länge wird der Text rechts länger ohne dass der Anfang weiter nach links rückt obwohl da noch Platz ist.

    Nachstellen kann man den Fehler durch 2 kleine Änderungen in der Demo CalcTable:

    1) die Preisspalte den Schutz wegschalten und

    2) die Fußzeile rechtsbündig,

    dann im Preis ein paar Ziffern dazutippen

    Es wäre schön wenn es dafür eine Lösung gibt!

    Ciao
    Stefan

    • Offizieller Beitrag

    Der Text im Footer oder Header wird nicht konkret für jede Seite formatiert.

    Daher ist es wichtig derartige Objekte so mit Leerstellen aufzufüllen, dass die Werte auf allen Seiten hineinpassen. Das lässt sich technisch nicht anders machen.

  • Hallo,

    im DoTextObjectPaintCalcEvent habe ich jetzt mal den Ergebnistext mit Nullen verlängert, dann passt die rechtsbündige Formatierung.

    Code
    ResultText := formatfloat('0', sum);
    while length(ResultText) < 20 do
     ResultText := '0' + ResultText;
    UseIt := true;

    Das ist aber optisch nicht gewünscht, so dass ich mit Leerzeichen anstelle der Nullen verlängert habe, das aber funktioniert nicht, da steht der Text nicht mehr ganz rechts.

    Mit '_' geht es auch, wie aber bekomme ich "unsichtbare" Zeichen vor den Text?

    Irgendwie fehlt mir die "zündende Idee" wie und womit ich verlängern kann.

    Ciao
    Stefan