如何锁定Delphi的DBGRID的列
编号:QA000036
建立日期: 1998年9月1日 最后修改日期:1998年9月1日
所属类别:
李剑锋:
我在使用Delphi 3进行数据库编程的时候,希望DBGRID构件在显示数据的时候能象FoxPro的BROWSE命令一样,锁定左边指定的几列不进行滚动,请问应用什么方法来实现?
回答:
我们知道Delphi的TStringGrid有一个属性FixedCols来指定不滚动的列。虽然TDBGrid不能直接使用这一属性,但通过强制类型转换也可以首先这一功能,因为这两个类都来自TCustomGrid类。下面我们以Delphi 3.0的Demos\Db\CtrlGrid为例来说明具体的用法。在这个例子的TFmCtrlGrid.FormShow过程中加入如下一行:
TStringGrid(DbGrid1).FixedCols := 2;
运行该程序,就可以得到图1所示的效果,在左右移动各列时,Symbol列不会移动。除了这种方法,也可以采用下面的方法:首先在Form声明部分加上
type TMyGrid = Class(TDBGrid) end;
然后在TFmCtrlGrid.FormShow过程中加入:
TMyGrid(DbGrid1).FixedCols := 2;
两者从形式上略有不同,但实质都是一样的。我们这里设置FixedCols为2,这是因为在DBGrid构件最左侧有个指示列,如果你将DBGrid的Options属性的dgIndicator设为False,则应设置FixedCols为1。
图1 通过强制类型转换使TDBGrid类支持FixedCols属性
此问题由李海回答。
| |
|
|
| |
|
|