【发布时间】:2012-01-10 02:39:37
【问题描述】:
我有一个 Richedit,它允许我的用户格式化和查看在我的应用程序中显示的错误消息。
我现在需要能够仅将文本(无格式)导出到他们的故障单系统使用的另一个数据库中。
我已经尝试了所有我能想到的 PlainText 组合,但我总是得到 rtf 格式。
我怎样才能只得到文本?
【问题讨论】:
-
安德烈亚斯和大卫都是对的,但大卫是第一个看到我的错误导致我的文本混乱的人。感谢两者。
我有一个 Richedit,它允许我的用户格式化和查看在我的应用程序中显示的错误消息。
我现在需要能够仅将文本(无格式)导出到他们的故障单系统使用的另一个数据库中。
我已经尝试了所有我能想到的 PlainText 组合,但我总是得到 rtf 格式。
我怎样才能只得到文本?
【问题讨论】:
我用这种方式获取无格式文本
procedure TMainForm.O1Click(Sender: TObject);
begin
if sOpenDialog1.Execute then
sRichEdit1.Lines.LoadFromFile(sOpenDialog1.FileName);
sMemo1.Text := sRichEdit1.Text;
sRichEdit1.Clear;
sRichEdit1.Text := sMemo1.Text;
对于保存文件,您必须选择 保存为 .txt 文本仍在备忘录中,但您所做的所有更改将仅在 Richedit 中,因此您必须在完成所有更改后将文本移动到备忘录,然后从备忘录中保存
另存为 .rtf 只需从 Richedit 中保存即可 希望对你有帮助
【讨论】:
回答您提出的直接问题,Text 属性正是您要寻找的。由于某种原因,它没有出现在 TRichEdit 文档中,但它继承自 TCustomEdit。
在我看来(按照 cmets 对 Andreas 的回答),您真正需要做的事情如下:
RichEdit.LoadFromStream,确保PlainText 是False。RichEdit.Text 以获取未格式化的文本。目前,您只是将 RTF 作为纯文本放入控件中。您需要将其作为富文本放入控件中,为此您需要LoadFromStream。
【讨论】:
要获取未格式化的文本,只需使用RichEdit1.Text。
【讨论】:
TRichEdit.Text 属性来加载RTF 格式。要正确加载 RTF,您必须使用 TRichEdit.Lines.LoadFrom...() 方法之一,并将 TRichEdit.PlainText 属性设置为 False。然后您可以使用TRichEdit.Text 属性来检索未格式化的文本。