用dbgrid的自画事件来实现,并可以将你的dbradiogroup显示在dbgrid中的一个格子中,
将dbgrid的defaultdrawing设为false,
procedure TF_xz_ffgz.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Tem_text:STring;
TEm_rect:Trect;
Tem_int:integer;
i:integer;
begin
Tem_rect.Left:=Rect.Left-1;
Tem_Rect.Top:=Rect.Top-1;
Tem_Rect.bottom:=rect.Bottom+1;
Tem_Rect.Right:=rect.Right+1;
Dbgrid1.Canvas.Textrect(rect,rect.left,rect.top,Tem_text);
dbgrid1.canvas.drawfocusrect(Tem_rect);
if (gdfocused in state) and (column.fieldname='sfff') then begin
Dbradiogroup1.setbounds(
rect.left+dbgrid1.left+1,
rect.top+dbgrid1.top+1,
rect.right-rect.left,
rect.bottom-rect.top);
end;
end;
这样就可以实现,不过要将其dbradiogroup的onclick事件中加入将表格刷新的语句,还可以有很多很多的好的界面,有什么不清楚可以再问
将dbgrid的defaultdrawing设为false,
procedure TF_xz_ffgz.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Tem_text:STring;
TEm_rect:Trect;
Tem_int:integer;
i:integer;
begin
Tem_rect.Left:=Rect.Left-1;
Tem_Rect.Top:=Rect.Top-1;
Tem_Rect.bottom:=rect.Bottom+1;
Tem_Rect.Right:=rect.Right+1;
Dbgrid1.Canvas.Textrect(rect,rect.left,rect.top,Tem_text);
dbgrid1.canvas.drawfocusrect(Tem_rect);
if (gdfocused in state) and (column.fieldname='sfff') then begin
Dbradiogroup1.setbounds(
rect.left+dbgrid1.left+1,
rect.top+dbgrid1.top+1,
rect.right-rect.left,
rect.bottom-rect.top);
end;
end;
这样就可以实现,不过要将其dbradiogroup的onclick事件中加入将表格刷新的语句,还可以有很多很多的好的界面,有什么不清楚可以再问
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货