Repaint, Refresh, oder was auch immer?

  • Hallo

    folgender Code erzeugt eine Textbox im OnMeasureTextPage, wenn die Seite neu ist (was ich mir merke) :

    erzeuge ich den Text im Dokument langsam einzeln und lass dem WPRichText dazwischen Zeit, wird auf jeder neuen Seite oben die Textbox dargestellt.

    Erzeuge ich aber viel Text über mehrere Seiten per Code, sind die Textboxen unsichtbar, auch wenn man im Dokument scrollt.
    Erst wenn man irgendwo ins Dokument hineinklickt werden sie sichtbar!

    Ich habe WPRichText.Repaint, WPRichText.Refresh, WPRichText.Memo.Repaint, WPRichText.Memo.Refresh nach der Texterzeugung probiert, alles ohne Wirkung!

    Gibt es noch einen Trick?

    Ciao

    Stefan

    • Offizieller Beitrag

    OnMeasure wird im Reformat aufgerufen. Wenn man dort schon neuen Text erzeugt was ich nicht empfehlen kann, dann darf man dies nur einmal machen, also bereits erstellte Elemente erkennen und wieder verwenden.

    Grundsätzlich sind Texte nach der Erstellung unsichtbar und werden erst nach der Initialisierung und Reformat sichtbar.

    Ich glaube Ihr Ansatz erwartet etwas vom Editor für das er nicht gebaut wurde.

    • Offizieller Beitrag

    OnGetSpecialText kann verwendet werden um bestimmte Header für bestimmte Seiten einzublenden. Diese Header können dann auch verlinkte Textboxen haben. Diese Texte dürfen aber nicht in diesem Event hergestellt werden da man sonst eine Recursion im Reformat hat.

    Grundsätzlich ist die Frage welches Problem diese Textboxen lösen. Ich hatte schon gesagt, dass ein Formular Editor so nicht realisierbar ist, dies zumindest nicht so beabsichtigt ist.

    OnMeasurePage kann prinzipiell wie oben verwendet werden - nur muss dann nach dem Reformat noch mal ReformatAll aufgerufen werden und dann keine neuen textbox erstellt werden.