怎样在DBGRID或StringGRID中实现底纹?(50分)

  • 主题发起人 主题发起人 小咪
  • 开始时间 开始时间

小咪

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在DBGRID或StringGRID中实现底纹,效果如同MS ACCESS中的输入窗体?
奉送50分。
 
stringgrid:
1. 建立底纹的bitmap.
2. defaultdrawing := false;
3. 在OnDrawCell事件中写代码:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if state <> [] then // selected or focused or fixed cell
begin
......
end
else begin
stringgrid1.canvas.brush.style := bsClear;
stringgrid1.canvas.copyrect(rect, Backgroundbitmap.canvas, rect); //画cell部分的背景
stringgrid1.canvas.textrect(rect, rect.left + 2, rect.top + 2, stringgrid1.cells[acol, arow]);
end;
end;

dbgrid:
1. 相同
2. 相同
3. OnDrawColumnCell:

 
不太明白你想要的效果,你可以具体解释一下,不过让我看,这类问题已经提出多
次。效果简直是....大多是用drawcell方法将图像分成多份再往上贴!!累啊。
 
又慢了一点! :)
 
也许还有更好的办法:

grid不是由Tedit构成的吗? 把每个TEdit做成透明的就可以了,
只要一张大背景图就成.
已经有控件可以做透明的edit,看看它的原吗,就知道该如何做了.
 
接受答案了.
 

Similar threads

回复
0
查看
988
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部