这里的背景是我正在维护一个在 Delphi 7上运行的应用程序,我通过编程方式分配dbriceditcontrols的数据字段,以允许用户编辑rtf文档。当相关的表单打开时,显示未格式化的文本,然后当用户移动到下一个文档时,突然出现了富文本;我怀疑这一定是某种初始化问题,但我错过了什么?
nx7onnlm1#
你说的话表明你可能正在尝试用错误的方式去做你想做的事情。你说你正在使用一个TDBRichEdit组件,但是如果你正确地使用它,它应该不需要任何数据字段的编程分配来做这件事:您只需要通过TDataSource组件将组件连接到您正在使用的TTable或TQuery,并配置DBRichEdit以访问TTable/TQuery中存储richedit文本的任何字段。这可以在设计时使用IDE中的对象检查器设置属性来完成,并且不需要任何代码。所以,在我看来,要么你没有正确使用DBRichEdit,要么你试图做一些你没有在你的q中解释的事情。您可以确信DBRichEdit自动工作,而无需在代码中加载或保存其内容,如下所示:
TDBRichEdit
DataField
Notes
Table1
ReadOnly
Active
Save
DBRichEdit1
此外,下面的代码可以很好地从.Rtf文件加载Notes字段
procedure TForm1.Button1Click(Sender: TObject); begin Table1.Edit; TMemoField(Table1.FieldByName('Notes')).LoadFromFile('D:\test.rtf'); end;
字符串并且最初并不显示你所描述的无格式文本。所以我相当肯定你的问题出现在你没有给我们看的代码中。
1条答案
按热度按时间nx7onnlm1#
你说的话表明你可能正在尝试用错误的方式去做你想做的事情。你说你正在使用一个
TDBRichEdit
组件,但是如果你正确地使用它,它应该不需要任何数据字段的编程分配来做这件事:您只需要通过TDataSource组件将组件连接到您正在使用的TTable或TQuery,并配置DBRichEdit以访问TTable/TQuery中存储richedit文本的任何字段。这可以在设计时使用IDE中的对象检查器设置属性来完成,并且不需要任何代码。所以,在我看来,要么你没有正确使用DBRichEdit,要么你试图做一些你没有在你的q中解释的事情。
您可以确信DBRichEdit自动工作,而无需在代码中加载或保存其内容,如下所示:
DataField
属性设置为Notes
。Table1
的ReadOnly
属性设置为False。然后将Table1
的Active
属性设置为True。Save
速度按钮。DBRichEdit1
中。此外,下面的代码可以很好地从.Rtf文件加载
Notes
字段字符串
并且最初并不显示你所描述的无格式文本。所以我相当肯定你的问题出现在你没有给我们看的代码中。