我的表单上有TDBLookupComboBox
。
TDBLookupComboBox
显示数据库表中的记录列表。
在表单OnShow
事件发生时,我希望TDBLookupComboBox
已经显示列表中的一个字符串。
到目前为止我已经这样做了......
procedure TfrmMain.FormShow(Sender: TObject);
begin
dblucbox.Text := Username;
end
用户名是列表中已有记录之一的字符串。
在编译时,我收到错误说
无法分配给只读属性
我有点坚持这一点,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
请勿尝试修改Text
属性,而是如果要在特定项目中设置TDbLookUpComboBox
,则必须使用将尝试定位的KeyValue
属性基础TDataSet中的记录。
因此,如果您拥有该用户的键值,则可以使用此类
dblucbox.KeyValue := UserId;
否则你可以使用底层TDataSet的Locate方法来查找匹配并自动刷新LookUp控件
答案 1 :(得分:2)
你正在倒退这个。更确切地说,DBLookupCombo反映了数据库表的状态。所以你想操纵桌子,而不是组合框。
换句话说,OnShow事件需要打开作为DBLookupCombo对象的表(如果它尚未打开),然后将当前记录定位为您想要显示为默认值的那个。