咨询下关于数据感知控件使用的几个问题

Rubi 2013-11-11 04:59:12
我用pagecontrol做了7个tabsheet页面,每个页面都有较多的数据控件,左侧是一个树形,比如我选择树形的一个类别,那么对应的tabsheet则显示对应的信息。我全部用的adotable来进行连接,一个adotable对应数据库里的一个表,对应一个tabsheet页面上的处理信息
问题1:新建数据的时候,我7个tabsheet里的数据可能有1-2tabsheet里没有录入任何信息,比如我下次再进入的时候,那么有数据的表我更新的时候就是先用adotable.edit,然后再用adotable.post,那么无数据的表,我就是adotable.appand?,因为我只有一个保存按钮。
问题2:我有tabsheet上有上百个数据控件,我想点击树形上类别,tabsheet显示数据的时候,dbedit的编辑都处于不可编辑状态,那么除了一个个dbedit.enable := false,然后点编辑按钮则让他们显示可编辑状态之外,是否还有更好的办法来处理。因为现在又数据的页面可以随意输入数据进去,这样用户体验不好,而且很容输入之后直接点击保存了。那么久会出现数据集没有处于编辑状态,不可保存的错误。
问题3:每个tabsheet都有一个id(编号)做为关键字做链接,我是设置第一个页面的id录入之后,自动赋值到其他页面的id上,那么就有一个问题,如果鼠标进入的时候,这个赋值过来的数据就不见了,然后鼠标退出,又有了,请问下这种情况有更好的处理办法吗?
问题4:我通过dblookupcombobox获取数据然后赋值给一个dbedit,这个dbedit我设置为不可编辑,然后下面有dbgrid,dbgrid可以显示dblookupcobobox里的数据,显示不了dbedit的数据,请问这是为什么?

烦请各位帮帮忙了
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
RayYan 2013-11-12
  • 打赏
  • 举报
回复
嗯 是的这个方法挺好的。
Rubi 2013-11-11
  • 打赏
  • 举报
回复
引用 2 楼 Oraclers 的回复:
for i := 0 to ComponentCount-1 do begin if Components[i] is TDBEdit then TDBEdit(Components[i]).ReadOnly := False; //True时只读不能写。个人认为这个属性比用Enable好。 else if Components[i] is TDBxxx then //.... 这样可以分类设定各个控件是否只读。 end
这个方法不错,值得学习
Oraclers 2013-11-11
  • 打赏
  • 举报
回复
for i := 0 to ComponentCount-1 do begin if Components[i] is TDBEdit then TDBEdit(Components[i]).ReadOnly := False; //True时只读不能写。个人认为这个属性比用Enable好。 else if Components[i] is TDBxxx then //.... 这样可以分类设定各个控件是否只读。 end
RayYan 2013-11-11
  • 打赏
  • 举报
回复
问题1:保存时如果某个tabsheet都为空,那么也向对应表中插入一条记录,只是ID字段不为空,其他都为空。 下次再进入的时候,者用adotable.edit,然后再用adotable.post。 问题2:可以将那些控件放到一个panel上面。设置panel.enabled:=true或者panel.enabled:=flase来实现你要 的效果。 问题3:没有理解什么意思。 问题4:数据库中存放的是ID,如果要在dbgrid显示ID对应的内容,可以用SQL关联显示。或者用dbgrideh控件来实现这个效果。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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