定义一个
type
tmydbgrid = class(TDBGrid)
public
{ Public declarations }
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;Override;
procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState); override;
Procedure KeyPress(var Key: Char);Override;
procedure Invalidate; override;
end;procedure Register;
implementationprocedure Register;
begin
RegisterComponents('Data Controls', [tmydbgrid]);
end;{ tmydbgrid }constructor tmydbgrid.Create(Aowner: TComponent);
begin
inherited Create(Owner);
FixedColor:=clskyblue;//RGB(69,142,186);
end;destructor tmydbgrid.Destroy;
begin
inherited destroy;
end;procedure tmydbgrid.DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState);
begin
inherited;
with Canvas do //画 cell 的边框
begin
Pen.Color :=clteal; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色的竖线
end;
if DataSource.DataSet.RecNo mod 2 = 0 then //填充底色
Canvas.Brush.Color :=ClCream
else
Canvas.Brush.Color := clred;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;procedure tmydbgrid.Invalidate;
begin
inherited;
// Perform(CM_INVALIDATE,1, 0);
end;procedure tmydbgrid.KeyPress( var Key: Char);
begin
if key=#13 then
begin
if SelectedIndex<FieldCount-1 then
SelectedIndex:=SelectedIndex+1
else if Datasource.DataSet.State=dsInsert then
begin
Datasource.DataSet.Append;
SelectedIndex:=0;
end;
end ;
inherited;
end;
end. 当把控件放到FORM上的时候(设计期),出现
annot focus a disabled or invisible window
help
type
tmydbgrid = class(TDBGrid)
public
{ Public declarations }
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;Override;
procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState); override;
Procedure KeyPress(var Key: Char);Override;
procedure Invalidate; override;
end;procedure Register;
implementationprocedure Register;
begin
RegisterComponents('Data Controls', [tmydbgrid]);
end;{ tmydbgrid }constructor tmydbgrid.Create(Aowner: TComponent);
begin
inherited Create(Owner);
FixedColor:=clskyblue;//RGB(69,142,186);
end;destructor tmydbgrid.Destroy;
begin
inherited destroy;
end;procedure tmydbgrid.DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState);
begin
inherited;
with Canvas do //画 cell 的边框
begin
Pen.Color :=clteal; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色的竖线
end;
if DataSource.DataSet.RecNo mod 2 = 0 then //填充底色
Canvas.Brush.Color :=ClCream
else
Canvas.Brush.Color := clred;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;procedure tmydbgrid.Invalidate;
begin
inherited;
// Perform(CM_INVALIDATE,1, 0);
end;procedure tmydbgrid.KeyPress( var Key: Char);
begin
if key=#13 then
begin
if SelectedIndex<FieldCount-1 then
SelectedIndex:=SelectedIndex+1
else if Datasource.DataSet.State=dsInsert then
begin
Datasource.DataSet.Append;
SelectedIndex:=0;
end;
end ;
inherited;
end;
end. 当把控件放到FORM上的时候(设计期),出现
annot focus a disabled or invisible window
help
解决方案 »
- delphi连接mysql出现MySql server has gone away如何解决?
- 想开发一套公用平台,请大家谈谈想法
- Tchart FastLine 显示不连续的线.
- 寻找合作,,,快来,欢迎试用代理!!!!!
- 刚才散分100,再散!!!
- 關於excel方面的,運行後半天沒有反應,為什麼,代碼如下:
- 我用adoquery建立了两个单独的数据源,但如何实现主从关系呢?
- 如何调用过程
- 在线求助,谁知道CSDN离线浏览器中所用的数据库文件是什么格式的,扩展名为BLB
- 关于字符串的问题
- 程序源代码大开放,请各位帮我改写成DELPHI下可使用
- DBGRID,我希望将后面一笔记录移动到前面去,怎么做??
改為:
inherited;
inherited destroy;
改為:
inherited;procedure tmydbgrid.Invalidate;//去掉, 但這個不重要
改為:
inherited;
inherited destroy;
改為:
inherited;
这个是错的,不用改,保存你原来那样就行了
-------------------------
procedure tmydbgrid.Invalidate;//去掉, 但這個不重要
这个就对了
---------------------------
以下是我的观点:
首先你的这个控件从TCustomDBGrid继承下来好一些,可以灵活地控件属性的显示
而TDBGrid只是简单地把TCustomDBGrid的属性显化出来而已,你可以看一下源码其次你的destroy并没有做什么事情,这里不要也可以的,至于Create,用你原来那个就可以了Invalidate有没有执行什么任务呢,没有的话去掉吧KeyPress中承继应该是inherited KeyPress(Key);DrawColumnCell中的的继承写在后面好一些吧,而且这样的形式:
inherited DrawColumnCell(Rect,DataCol, Column,State);
至于其他,似乎没有什么了,再看看吧。