遇到怪事了,求救,TDBEDIT.READONLY不起作用了

sztony 2014-05-20 09:01:05
我有如下一段代码,就是对TDBEDIT控件的READONLY进行控制,非常简单,
但是,在运行过程中,把DOCTYPE_CODE类型改变时候,比如由STD切换到XX,
希望TDBEDIT能够写,但实际却还是只读,没办法写,跟踪时,明明执行了dbedit2.ReadOnly := false;语句
却就是没有效果,太奇怪了,从来没有遇到过这种怪事,求救了。

with zq_wkpiece do
begin
if state in [dsinsert,dsedit] then
begin
if trim(fieldbyname('doctype_code').AsString) = 'STD' then
begin
dbedit2.Color := clbtnshadow;
dbedit4.Color := clbtnshadow;

dbedit2.ReadOnly := true;
dbedit4.ReadOnly := true;
end else
begin
dbedit2.Color := clwindow;
dbedit4.Color := clwindow;

dbedit2.ReadOnly := false;
dbedit4.ReadOnly := false;

end;
end; //if state in .... then
end; //with zq_wkpiece do
...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sztony 2014-05-20
  • 打赏
  • 举报
回复
dataset相关字段READONLY也设为FALSE了,界面上的其它字段也可以编辑, 就是这个二个字段,因为被TRUE过,切换为FALSE后,还是不能编辑,但其它字段都能编辑(其它字段没有切换过TRUE 和FALSE)。
金卯刀 2014-05-20
  • 打赏
  • 举报
回复
dataset中字段的ReadOnly会影响数据感知控件的readOnly状态
sztony 2014-05-20
  • 打赏
  • 举报
回复
1)主键也是可以编辑的, 2)这二个字段,在我的程序里,不是主键字段, 真被搞崩溃了,不知道问题出在哪里?
Andy-88 2014-05-20
  • 打赏
  • 举报
回复
主键是不能编辑的 与READoNLY  没有关系
金卯刀 2014-05-20
  • 打赏
  • 举报
回复
我的意思是直接设置字段属性readonly。如果一定要设置控件的属性,可以在actionlist.onupdate事件实时控制界面状态

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧