分少,大家也看看,各抒己见--关于borland的dbgrid的设计思路.(10分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
想必大家都用过dbgrid, 为什么borland做的dbgrid和VB那一套的dbgrid
总有些不一样的地方, 最奇怪的是, 如果dgRowSelect, 就不能dgEditing,
还有,别的ActiveX Dbgrid都是如果可以编辑,便会在最后一行显示一个空
行,当你编辑这个空行的时候,就相当于正在添加记录,而broland的dbgrid
只有通过代码来实现.当然, 你可以自己通过继承来实现这些功能, 可是,
既然实现起来并不难,为什么不添加上呢?是使用习惯不同吗? 我不相信同是
美国的两家公司, 使用习惯会这么不同.

谁能说说borland是怎么想的? 为什么这么做??
---这问题是不是有点无聊啊?

 
怎么会无聊呢?
我认为Borland做dbGrid并没有想把它作为完整的一个组件,什么都能做。
Borland的思路好像是尽量的简单,但是层次清楚。
就想dgRowSelect的时候,我想它是想,既然dgRowSelect了, 就应该用另一个
或者另一些控件实现修改。
就象Unix一样,不是每个工具都面面俱到,但是组合起来就非常有效。
这样做好处是可以让程序员思想简单。代码错误率低,生产效率高。

 
有些缺陷,等d5出来再说吧.
 
有些道理,不过我还不能苟同.
有没有其他人愿意发表高见?
 
1) 行选择的话,由于没有指定当前列,编辑时修改哪一列的内容
含糊不清,因此有难度。(我不知道VB中怎么做的)
2)添加一行只要在最后一行按下箭头键就可以的啊。

 
对于行选择,如果你不用行选择,那DBGRID左面的三角标记就是VB中的行
标记了,那只是表示当前行,选择了当前行再指定一个FIELD,你可以在
DRAWCELL中自己写控制,将当前行的底色,字色等进行修改。
至于添加一行,如DELPHI所说,没有什么困难,为什么要其他控制呢
 
to delphi: 按理说,当鼠标点在一个记录上时, 可以根据鼠标位置确定
到底是那一列,实现起来应该很简单.
我知道可以按向下光标添加记录, 可是很多人习惯只用鼠标
操作.
 
所以有dbnavigator控件呀.
 
就这样吧,反正也讨论不出什么结果,sherman和我想的差不多,
我准备用drawcell来模拟RowSelect.
 
后退
顶部