无法分配给只读属性

时间:2015-03-18 16:20:57

标签: delphi delphi-xe2

我的表单上有TDBLookupComboBox

TDBLookupComboBox显示数据库表中的记录列表。

在表单OnShow事件发生时,我希望TDBLookupComboBox已经显示列表中的一个字符串。

到目前为止我已经这样做了......

procedure TfrmMain.FormShow(Sender: TObject);
begin
  dblucbox.Text := Username;
end

用户名是列表中已有记录之一的字符串。

在编译时,我收到错误说

  

无法分配给只读属性

我有点坚持这一点,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

请勿尝试修改Text属性,而是如果要在特定项目中设置TDbLookUpComboBox,则必须使用将尝试定位的KeyValue属性基础TDataSet中的记录。

因此,如果您拥有该用户的键值,则可以使用此类

 dblucbox.KeyValue := UserId;

否则你可以使用底层TDataSet的Locate方法来查找匹配并自动刷新LookUp控件

答案 1 :(得分:2)

你正在倒退这个。更确切地说,DBLookupCombo反映了数据库表的状态。所以你想操纵桌子,而不是组合框。

换句话说,OnShow事件需要打开作为DBLookupCombo对象的表(如果它尚未打开),然后将当前记录定位为您想要显示为默认值的那个。