2017-09-12 22 views
-2

DevExpress은 "TdxRichEditControl을 사용하여 프로그래밍 방식으로 서식있는 텍스트를 추가 및 가져 오는 방법"에 대한 문서를 제공하지 않습니다. 내 프로그램의 임베디드 텍스트 편집기에 대한 제안 사항이 있습니까? 나는 델파이 시애틀에있다.프로그래밍 방식으로 TdxRichEditControl을 사용하여 서식있는 텍스트를 추가하고 가져 오는 방법은 무엇입니까?

내 상황 :

나는 사용자가 서식있는 텍스트 편집을 필요로하는 프로그램을 만드는 오전 (굵게 등을 기울임 꼴, 밑줄, 글꼴 크기, 글꼴 가족, 단락 조심). 그래서 나는 사용자가 변경할 텍스트 모델을로드하는 DBRichEdit을 넣었습니다. 그래서이 모델 텍스트를 TdxRichEditControl으로 가져 와서 변경 사항을 적용하고 다시 DBRichEdit으로 다시 보내 데이터베이스에 저장해야합니다.

+0

권장 사항은 여기에서 벗어납니다. 그리고 어쨌든 요구 사항을 명시하지 않고 왜 좋은 추천을 기대할 수 있습니까? –

+0

dev 익스프레스 제어에 도움이 될 것입니다. https://www.youtube.com/watch?v=97GaF1kgqPM 문서가 없으면 믿을 수 없습니다. –

+0

고마워, 이미 답변을 본 링크 에 대한 응답으로 그들은 settext 및 gettext 메소드를 제공하지 않습니다. –

답변

1

컨트롤에 텍스트의 일부분을 삽입하려는 경우, 이는 DevExpress RichEdit에서 다른 DevExpress RichEdit로 복사하는 데 사용한 일부 코드입니다. 다른 소스에서 복사 할 때 적용 할 수 있습니다 (경고 - 몇 년 전입니다.) :

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

감사합니다. Dave는 이미 TdxRichEditControl에서 텍스트 삽입 및 가져 오기를 지원하는 DevExpress의 새로운 버전으로 전환하여 문제를 해결합니다. TdxRichEditControl.Document.InsertRTFtext(); TdxRichEditControl.Document.GetRTFtext(); –