2017-09-12 3 views
-2

DevExpress bietet keine Dokumentation über "Wie programmgesteuert hinzufügen und Rich Text mit einem TdxRichEditControl erhalten". Oder Irgendwelche Vorschläge zum integrierten Volltext-Editor in meinem Programm? Ich bin auf Delphi Seattle.Wie programmgesteuert hinzufügen und Rich Text mit einem TdxRichEditControl erhalten?

Meine Situation:

ich ein Programm erschaffe, auf dem der Benutzer Rich-Text-Bearbeitung benötigen (wie Fett, Kursiv, Unterstrichen, Schriftgröße, Schriftfamilie, Ziffer Aligning). Also habe ich ein DBRichEdit putted, das ein Modell des Textes lädt, auf dem der Benutzer Änderungen vornimmt. Also muss ich diesen Modelltext an die TdxRichEditControl nehmen, um die Änderungen zu übernehmen und wieder auf die DBRichEdit zu speichern, um es in der Datenbank zu speichern.

+0

Empfehlung Fragen sind Off Topic hier. Und warum sollte man auf jeden Fall eine gute Empfehlung ohne Angabe von Anforderungen erwarten. –

+0

Dies könnte Ihnen mit der Dev Express-Kontrolle helfen. https://www.youtube.com/watch?v=97GaF1kgqPM Ich kann es kaum glauben, dass es ohne Dokumentation kommt. –

+0

Danke, für die Rückmeldung über den Link habe ich schon gesehen, sie bieten keine Settext und Gettext-Methoden. –

Antwort

1

Wenn Sie nur Teile von Text in das Steuerelement einfügen möchten, ist dies ein Code, den ich verwendet habe, um von einem DevExpress RichEdit zu einem anderen zu kopieren .. Sie können es möglicherweise anpassen, um von einer anderen Quelle zu kopieren (Warnung - es ist ein paar Jahre alt):

procedure AppendToRichEdit(const Source, Dest: TcxRichEdit) ; 
var 
    RTFStream: TEditStream; 
    Stream : TMemoryStream; 

    function EditStreamReader(dwCookie: DWORD; pBuff: Pointer; cb: LongInt; pcb: PLongInt): DWORD; stdcall; 
    begin 
    Result := $0000; 
    try 
     pcb^ := TStream(dwCookie).Read(pBuff^, cb); 
    except 
     Result := $FFFF; 
    end; 
    end; 

begin 
    Stream := TMemoryStream.Create; 
    try 
    Source.Lines.SaveToStream(Stream) ; 
    Stream.Position := 0; 
    RTFStream.dwCookie := DWORD(Stream) ; 
    RTFStream.dwError := $0000; 
    RTFStream.pfnCallback := @EditStreamReader; 
    Dest.InnerControl.Perform(EM_STREAMIN, SFF_SELECTION or SF_RTF or SFF_PLAINRTF, LPARAM(@RTFStream)) ; 
    if RTFStream.dwError <> $0000 then 
     raise Exception.Create('Error appending RTF data.') ; 
    finally 
    Stream.Free; 
    end; 
end; 
+2

Danke, Dave Ich löse das Problem bereits, indem ich auf die neuere Version von DevExpress umschalte, die das Einfügen und das Abrufen von Text von TdxRichEditControl unterstützt. TdxRichEditControl.Document.InsertRTFtext(); TdxRichEditControl.Document.GetRTFtext(); –