Announcement

Collapse
No announcement yet.

Problem Übergabe Richedit-Inhalt an FormularTextfeld

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

  • Problem Übergabe Richedit-Inhalt an FormularTextfeld

    hallo, allerseits!

    ich habe mal wieder ein triviales Problem:

    WordApplication1.ActiveDocument.FormFields.Item(Te xtmarke).Result := richedit1.text;

    stellt nur den Text der ersten Zeile dar. Der Rest ist in word vorhanden, (wie ein <Entf> am Ende der Zeile zeigt), aber nicht sichtbar.

    Wer weiß Abhilfe ?

    gruß, bernhard

  • #2
    Hallo Bernhard,

    FormFields akzeptieren nach meinen Erfahrungen mit Word97 nur Text mit einer Länge von 80 Zeichen (bei der Anzahl der Zeichen bin ich mir nicht mehr sicher. Eventuell waren es auch 160).

    Abhilfe schafft <b>WordApplication1.ActiveDocument.FormFields.Item (Textmarke).Range.Text := ...</b> . Allerdings handelt man sich damit einigen zusätzlichen Aufwand ein. Weil bei dieser Methode das FormField-Objekt durch den neuen Text ersetzt wird gehen alle Formatierungen verloren, sodass diese erst wieder mit eigenem Code restauriert werden müssen (relativ aufwendig).

    Tschüß

    Torste

    Comment


    • #3
      Hallo Thorsten.

      Danke für deinen Beitrag,...aber paßt nicht ;-)

      Das mit der Länge ist etwas fragwürdig, denn Du kannst ohne weiteres in ein formfield beim Kopieren von Hand ellenlange Texte eingeben. Sogar eine vorformatierte Aufzählung funktioniert per Hand.

      Das Formfield-Object darf nicht zerstört werden, weil der User den Text weiterbearbeiten wird, eben in diesem Formfield.

      Warum ist der Text nur sichtbar bis zum ersten #13 bzw VK_Return. Der Text als solches ist ja vorhanden!

      Trotzdem Danke für Deine Bemühung.
      gruß
      bernhar

      Comment


      • #4
        Hallo,

        was passiert, wenn anstelle des harten Zeilenumbruchs (neuer Absatz für Word) das Zeichen für den Zeilenwechsel (im gleichen Absatz) eingefügt wird? Im RTF wird dann nicht <i>\par</i>, sondern <i>\line</i> als Steuerzeichen verwendet

        Comment


        • #5
          Hallo Bernhard,

          über FormFields.Item(...).Result kann nur ein Tex von max. 255 Zeichen eingegeben werden (Word97). Habe ich gerade noch einmal ausprobiert. Selbst VBA beschwert sich wenn man einen längeren Text eingeben will.

          Beim manuellen Einfügen funktioniert es, weil Word über das Selection-Objekt den Text einfügt. Über das Range-Objekt wird das wahrscheinlich auch funktionieren, allerdings muß man bei diesem Weg auch wieder in die Trickkiste greifen um Word zu überlisten.

          Tschüß

          Torste

          Comment


          • #6
            Das Problem ist eingegrenzt. Die Übergabe funzt, wenn das formfield sich direkt auf dem Formular befindet. Das merkwürdige Verhalten findet nur dann statt, wenn das formfield sich in einem Positions-Rahmen befindet. - warum, ist mir völlig unklar(MS?), zumal der Positionsrahmen korrekt 'wächst'!

            Das mit der Zeichenlänge stimmt. Die Einstellung des formfield läßt doch explizit den Wert "unbegrenzt" zu(word2000). Warum also auch hier ein Problem?

            Ich lasse also den Positionsrahmen weg. Diese kleine Einschränkung wird der User überleben.

            Erstmal vielen Dank, Euch allen.
            gruß
            Bernhard :

            Comment


            • #7
              Und ansonsten mache ich das ganze ohne Formfields und nur mit dem Selection-Object.
              Es gibt wichtigeres, als sich mit Problemen aufzuhalten, die man selber nicht verursacht. Manchmal geht einem MS wirklich auf den Geist.

              Danke, an All

              Comment

              Working...
              X