在DBGrid中自己绘制网格可行,可是只要单击水平滚动条便走了样?100分奉送。(100分)

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

Chen_l

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想自己绘制DBGrid的网格。
现有数据集Table1如下:
FieldName Type Amount ...... IsMaster
FieldValue 商品 1
... t1 100 .....
... t2 98 .....
... ... ... .....
... 小计 10000 ..... 2
DataSource1的Property:DataSet设为:Table1;
DBGrid的Property:DefaultDrawing 设为:False;
DataSource:DataSource1;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Rt :TRect;
begin
Rt :=Rect;
if Table1.FieldByName('Ismaster').AsString='1' then
if Column.fieldName='Type' then
Rt.Right :=Rt.Left +Len;//Len 为DBGrid所有列宽总和
else
exit;
DBGrid1.DefaultDrawColumnCell(Rt,DataCol,Column,State);
end;
运行后第1行只显示“商品”,且没有垂直分割线。可是只要单击水平滚动条,
第1行的垂直分割线便显示出来了。不知怎么办?请各位指点。
 
后退
顶部