Formatierten Text aus TRichEdit auslesen zum weiterverarbeiten



  • Ich will, wie schon gesagt aus einem TRichEdit, den formatierten!!! Text auslesen, ohne diesen in einer Datei zwischen zu speichern.
    Ich habe es schon mit SaveToStream versucht:

    TStringStream * Buffer = new TStringStream("");
    RichEdit1->Lines->SaveToStream( Buffer );
    Memo1->Lines->LoadFromStream( Buffer );
    

    Doch Memo1 hat dann als Text immer NULL und ein zweites RichEdit würde so auch NULL haben.
    Natürlich kann ich es über SaveToFile und LoadToFile machen, aber das möchte ich nach Möglichkeit vermeiden.

    Hat wer ne Idee was ich falsch mache oder wie es sonst noch geht?

    MfG ViperT



  • Hallo

    also wenn es ums kopieren von TRichEdit zu TRichEdit geht, hilft dir vielleicht
    TRichEdit->CopyToClipboard(void)/PasteFromClipboard() weiter.

    bis bald
    akari



  • Genau das ist es, wenn ich von TRichEdit nach TRichEdit kopiere, habe ich ja trotzdem keinen String, der die RichText Formatierung beinhaltet, weil das TRichEdit das sofort umwandelt.
    Und ich will halt den RTF String haben.



  • RichEdit1->Lines->SaveToStream( Buffer );
    Buffer->Position = 0;
    Memo1->Lines->LoadFromStream( Buffer );
    

    PS.: delete nicht vergessen!



  • Hallo

    hm, wenn ich eine Testanwendung schreibe, in der ich formatierten Text von einem TRichEdit in ein anderes per [CTRL][Einf]/[SHIFT][Einf] kopiere, übernimmt er die Formatierungen mit. Also sollte die Clipboard-Variante theoretisch funktionieren. Wahrscheinlich mußt du mit WinAPI-Funktionen arbeiten, um beim Kopieren das Format mitzunehmen.
    Dazu kannst du ja mal zu SetClipboardData() schauen. Da wird nämlich angegeben, in welchen Format (Text, Bild, RichTextr,...) die Daten sind.
    Ich denke aber, der Aufwand ist ziemlich groß, und empfehle die dir Dateimethode.

    /Edit : hatte Jansen Post noch nicht gesehen

    bis bald
    akari



  • Jansen schrieb:

    RichEdit1->Lines->SaveToStream( Buffer );
    Buffer->Position = 0;
    Memo1->Lines->LoadFromStream( Buffer );
    

    PS.: delete nicht vergessen!

    Ich bin echt ne Pflaume, Position=0 hat geholfen, very thx ^^


Anmelden zum Antworten