delphi TDBrichedit显示纯文本而不是富文本

qnakjoqk  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(198)

这里的背景是我正在维护一个在 Delphi 7上运行的应用程序,我通过编程方式分配dbriceditcontrols的数据字段,以允许用户编辑rtf文档。当相关的表单打开时,显示未格式化的文本,然后当用户移动到下一个文档时,突然出现了富文本;我怀疑这一定是某种初始化问题,但我错过了什么?

nx7onnlm

nx7onnlm1#

你说的话表明你可能正在尝试用错误的方式去做你想做的事情。你说你正在使用一个TDBRichEdit组件,但是如果你正确地使用它,它应该不需要任何数据字段的编程分配来做这件事:您只需要通过TDataSource组件将组件连接到您正在使用的TTable或TQuery,并配置DBRichEdit以访问TTable/TQuery中存储richedit文本的任何字段。这可以在设计时使用IDE中的对象检查器设置属性来完成,并且不需要任何代码。
所以,在我看来,要么你没有正确使用DBRichEdit,要么你试图做一些你没有在你的q中解释的事情。
您可以确信DBRichEdit自动工作,而无需在代码中加载或保存其内容,如下所示:

  • 打开FishFacts演示
  • 将TDBNavigator和TDBRichEdit添加到表单。将DBRichEdit 1的DataField属性设置为Notes
  • Table1ReadOnly属性设置为False。然后将Table1Active属性设置为True。
  • 编译并运行项目。当它运行时
  • 启动WordPad.exe并在其中创建一段文字。将其复制到剪贴板。单击DBNavigator 1的Save速度按钮。
  • 将文本粘贴到DBRichEdit1中。
  • 您应该会发现,您可以从编辑过的记录中导航出来,然后返回编辑过的记录,并且会自动重新加载richtext。

此外,下面的代码可以很好地从.Rtf文件加载Notes字段

procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.Edit;
  TMemoField(Table1.FieldByName('Notes')).LoadFromFile('D:\test.rtf');
end;

字符串
并且最初并不显示你所描述的无格式文本。所以我相当肯定你的问题出现在你没有给我们看的代码中。

相关问题