解释一下DBGrid控件中的DrawDataCell的用法 ( 积分: 40 )

  • 主题发起人 主题发起人 爱上猫的鱼
  • 开始时间 开始时间

爱上猫的鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if(gdFocused in State) then
begin
if(Field.FieldName=DBMemo1.DataField) then //需要解释
begin
//需要解释下边四行
DBMemo1.Left:=Rect.Left+DBGrid1.Left;
DBMemo1.Top:=Rect.Top+DBGrid1.Top;
DBMemo1.Width:=Rect.Right-Rect.Left;
DBMemo1.Visible:=True;
end;
if(Field.FieldName=DBComboBox1.DataField) then
begin
DBComboBox1.Left:=Rect.Left+DBGrid1.Left;
DBComboBox1.Top:=Rect.Top+DBGrid1.Top;
DBComboBox1.Width:=Rect.Right-Rect.Left;
DBComboBox1.Visible:=True;
end;
end;
end;
解释一下Field,Rect的意思
 
当Cell得到焦点时,就绑定指定控件的做法
 
请帮忙解释的具体一点,我上边标注的都需要解释,谢谢
还有就是这是个什么用法,是干什么的
 
if(Field.FieldName=DBMemo1.DataField) then //如果设置的字段与DBMemo1的字段相同
begin
//需要解释下边四行 //将DBMemo1放置于当前cell内,并与之相适应
DBMemo1.Left:=Rect.Left+DBGrid1.Left;
DBMemo1.Top:=Rect.Top+DBGrid1.Top;
DBMemo1.Width:=Rect.Right-Rect.Left;
DBMemo1.Visible:=True;


Field DBGrid每列(column)都有与数据源(DataSet)相对应的字段(Field),可以在设计期设置
Rect 当前要绘制的单元格(Cell)在DBGrid中的位置及大小信息.
 
楼主:
Field是连接的数据字段,Rect当前单元格的范围
这是谁写的代码?怎么这么写?
 
多人接受答案了。
 
后退
顶部