ReformatAll mit Fehler bei der Bereichsprüfung

  • Folgender Codeschnipsel führt zu Fehler bei der Bereichsprüfung wenn rechtsbündig ausgerichtet wird. Linksbündig und zentriert funktioniert.

    Das Richtext wurde dynamisch erzeugt und liegt auf einem ebenfalls dynamisch erzeugten Panel, das Richtext enthält nur ein Wort.

    Was ist an meinem Code falsch bzw. was müsste ich richtigerweise machen?

    Lege ich zur Entwurfszeit ein Richtext auf ein Formular dann funktioniert obiger Code.

    Ciao

    Stefan

    • Offizieller Beitrag

    Wenn Sie dynamisch ein TWPRichText auf einem parent erzeugen, nach der Erzeugung 'Loaded' aufrufen. Dies passiert bei allen aus DFM geladenen controls.

    bzw...

    Wenn Sie ein control benötigen um dynamisch ein Dokument erstellen verwenden Sie als Konstruktor

    CreateDynamic

    bzw. in C++ nach dem "new" MakeDynamic aufrufen.

    Hierbei wird dem control ein Handle zugewiesen damit die Formattier Routinen funktionieren. Dann ist kein Parent erforderlich.

    • Offizieller Beitrag

    Den Fehler kann ich übrigens nicht nachvollziehen.

    Dieser code läuft ganz normal:

  • Danke, wieder was gelernt...

    Das aber ist nicht der Grund für meinen Laufzeitfehler Bereichsprüfung, der kommt immer noch bei rechtsbündiger Formatierung, egal ob wie oben per CurrAttr oder wenn ich

    Code
    par := RTFRichtext.FirstPar;
    par.ASet(WPAT_Alignment, Integer(paralRight));

    verwende.

    Ciao

    Stefan

  • Ich benötige eigentlich nur den Stream eines WPRichText mit bestimmten Schriftformatierungen zur Weiterverwendung.

    Daher erzeuge ich nun nicht mehr die Komponente(mit Panel, Richtext etc.) sondern nur wie vorgeschlagen ein TWPRichText mit CreateDynamic und damit funktioniert es nun wie gewünscht.

    Wenn mal Zeit ist baue ich das wieder zurück und fange mal den Fehler ein...

    Ciao

    Stefan