RichText zur Entwurfszeit in TRichEdit laden?



  • Hallo,
    ich möchte einen RichText in einem TRichEdit darstellen, allerdings kriege ich den RichText einfach nicht zur Entwurfszeit in das RichEdit geladen (ich will den Text aber nicht aus einer externen Datei oder aus einer Ressource laden).

    Wenn ich einfach den Quelltext des RichTextes in die Property Lines laden will (im ObjectInspector) bekomme ich nur die Fehlermeldung "RichEdit line insertion error".

    Weiß jemand, wie das geht?
    Die Hilfe hat mir nichts gebracht, die FAQ auch nicht...



  • Ich bezweifle, dass das möglich ist. TRichEdit kann den RTF-"Sourcecode" m.E. nur als Stream entgegennehmen.



  • Hallo,

    über diesen Umweg vielleicht?

    TStringList *tempList = new TStringList();
    tempList->Add("der RichText-Quellcode....");
    
    TMemoryStream *strm = new TMemoryStream();
    tempList->SaveToStream(strm);
    strm->Position = 0;
    RichEdit1->LoadFromStream(strm);
    delete strm;
    
    delete tempList;
    

    weihnachtliche Grüße,
    Robert :xmas1:



  • Reyx schrieb:

    RichText zur Entwurfszeit in TRichEdit laden?



  • Hi,

    RichText zur Entwurfszeit in TRichEdit laden?

    ohoh - ok ich nehme alles zurück und behaupte das Gegenteil :-))



  • Hallo,
    Mein Problem ist genau genommen nicht, dass es zwangsläufig zur Entwurfszeit sein muss, aber ich will nicht für jeden (der verdammt vielen Texte) eine Routine schreiben, die irgendwelche String aus der Ressource lädt, und um ein fast 300 Zeilen langen RichText direkt in den Quellcode zu schreiben würde das schon sehr viel Aufwand werden, die einzelnen Escape-Sequenzen darin mit "\" zu "neutralisieren".

    Das ganze soll eine Programmhilfe werden, da werden schon einige Texte fällig (und HTML-Help o.Ä. nutze ich aus Programmtechnischen Gründen nicht).

    Naja, ich habe mir jetzt damit beholfen, den Text einfach in einer TScrollBox mit Hilfe verschiedener Memos und Labels zu gestalten ... ist zwar rechtz aufwändig, aber das Ergebnis ist ganz OK.



  • Richtig nachvollziehen kann ich die Begründung nicht. Was spricht gegen das Laden aus (RTF-)Dateien, alle umfangreicheren Hilfesysteme laden doch aus externen Dateien!?

    Und für das Neutralisieren der Escape-Sequencen könnte man sich leicht ein kleines externes Tool schreiben, dass einem die Texte in passender Form aufbereitet

    Naja, als Workaround könntest du den RTF-Code in einer TStrings-Property einer anderen, nicht sichtbaren Komponente ablegen (Memo, ListBox o.ä.), beim Programmstart in einen Stream speichern und aus diesem Stream dann in das RichEdit laden. Ob sich das bei vielen Texten allerdings effizienter gestaltet sei mal dahingestellt.



  • Stimmt, aber die Hilfe liegt in Form einer dynamisch geladenen DLL vor. Das habe ich extra so gemacht, um die Hilfe so kompakt wie möglich zu halten. Natürlich würde es mit unsichtbaren Komponenten auch klappen, aber da hast du wohl recht: das würde es bei vielen Artikeln eher noch verkomplizieren...

    Naja, ich schau mal, was ich denn letzendlich nehme, ansonsten werd' ich wohl doch auf externe Dateien umsteigen...

    Edit: Ach ja, gegen das laden externer Dateien spricht nur, dass die Hilfe dann einfach manipuliert werden kann, ich die Dateien nicht verschlüsselt bearbeiten kann (via UPX) und das ganze dann noch extwas unübersichtlicher wird ... aber wenn's einfach nicht klappt ist das wohl auch zu verschmerzen 😉


Anmelden zum Antworten