如何更改DBgrid标题栏的高度,并且在上面写自己想写的文字? ( 积分: 50 )

  • 主题发起人 主题发起人 fengxiaoxiao
  • 开始时间 开始时间
F

fengxiaoxiao

Unregistered / Unconfirmed
GUEST, unregistred user!
就像dbgrideh那样,可以将标题栏分成几层。如下:
------|------------------
| 金额
摘要 |-------------------
|千百元角分
------------------------------
 
就像dbgrideh那样,可以将标题栏分成几层。如下:
------|------------------
| 金额
摘要 |-------------------
|千百元角分
------------------------------
 
这是不可能的,除非自己做
 
就是要自己做的。
ehlib中的dbgrideh就可以做到。
 
dev 也可以!
 
自己做还不如用EH的。
 
如果是BDE的话,那title是可以这样的,在《CB5开发人员指南》里面可以找到,但是ADO的好像就不行,所以还是改控件,用DBGridEh,看它的Demo就知道了
 
我感觉需要自己重写
 
如果想要自己开发,就算不想用DBGRIDEH的,那么也是可以参考一下它的代码是如何实现的,必竞它是很精典的
 
如果要实现dbgrid的多层标题功能,这就需要配合ADT类型字段来实现。
如下:
定义抽象的数据的数据类型

VCL数据库支持的一个有趣的特性是,当我们基于局部文件使用ClientDataSet时,可以定义抽象的数据类型。只需在窗体上放置一个ClientDataSet组件,为FieldDefs属性激活编辑器,添加两个字段,并为他们的DataType属性选择ftADT值。现在,移到ChildDefs属性,并定义子字段,下面是AdtDemo范例的字段定义:
FieldDefs = <
item
Name = 'ID'
DataType = ftInteger
end
item
name = 'Name'
ChildDefs = <
item
name = 'LastName'
DataType = ftString
size = 20
end
item
name = 'FirstName'
datatype = ftString
size = 20
end>
datatype = ftADT
size = 2
end>

在此,只需为ClientDataSet的FileName属性输入一个名称,用鼠标右键单击组件,并选择Create Table命令即可;我们准备编译并运行应用程序(在向它连接数据敏感组件之后)。数据会自动从提供的文件中读取,关闭程序时会将变化保存在文件中。
如果使用DBGrid查看结果数据集合,它允许我们展开或压缩ADT字段的子字段。我们可以通过定义字段的OnGetText事件提供它的压缩值(在Delphi4 中有一个缺省值,但Delphi5中没有):
procedure TForm1.ClientDataSet1NameGetText(Sender:TField;
var Text:String;DisplayText:Boolean);
begin
Text:=ClientDataSet1NameFirstName.AsString+' '+
ClientDataSet1NameLastName.AsString;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部