dbgrid的问题,请高手回答 dbgrid的最左边的标识记录的小箭头,是文字还是图片啊!如果是文字ASCII是多少啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是个图片在delphi安装目录下的lib目录中有个dbgrids.res用一些资源提取工具可以打开用ImageEditor好像打不开我用vc打开地 在dbgrids.pas中有const bmArrow = 'DBGARROW';然后在TCustomDBGrid.Create中 Bmp.LoadFromResourceName(HInstance, bmArrow); //从程序所链的DBGrids.res中装载图片 FIndicators := TImageList.CreateSize(Bmp.Width, Bmp.Height);然后用FIndicators来画 //参考StringGrid绘制三角const MY_DRAWCELL = WM_USER + 10;type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure FormCreate(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); private procedure MyDrawCell(var Msg: TMessage); message MY_DRAWCELL; { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin StringGrid1.DefaultRowHeight := 17; StringGrid1.ColWidths[0] := 11;end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);begin if ARow = TStringGrid(Sender).Row then PostMessage(Handle, MY_DRAWCELL, Rect.Top, 0);end;procedure TForm1.MyDrawCell(var Msg: TMessage);const {$J+}vWParam: DWORD = 0;{$J-}begin with StringGrid1.Canvas, Msg do begin ///////Begin 清除上一次的三角 Pen.Color := clBtnFace; Brush.Color := clBtnFace; Polygon([ Point(3, vWParam + 3), Point(8, vWParam + 8), Point(3, vWParam + 13) ]); ///////End 清除上一次的三角 Pen.Color := clBlack; Brush.Color := clBlack; Polygon([ Point(3, WParam + 3), Point(8, WParam + 8), Point(3, WParam + 13) ]); vWParam := WParam; end;end; 修改时,dbedit输入数据为什么要先把dbedit框中的数据选中再重新输入? 获取一个页面上的所有链接代码执行问题 TNotifyIconData在程序启动的问题 【散分,另和大家分享一些常用工具】 求一函数:删除某一目录下的所有文件! 请教一个dbgrid鼠标双击事件问题 怎样学进销存方面的编程,请过来人指教? 事件如何使用? 我以前的贴子哪去了? BatchMove问题,请高手指教! 用ADOQuery连接access,多表更新的问题!高分求助! 有个不明白的地方请教一下
在delphi安装目录下的lib目录中
有个dbgrids.res
用一些资源提取工具可以打开
用ImageEditor好像打不开
我用vc打开地
bmArrow = 'DBGARROW';
然后在
TCustomDBGrid.Create中
Bmp.LoadFromResourceName(HInstance, bmArrow); //从程序所链的DBGrids.res中装载图片
FIndicators := TImageList.CreateSize(Bmp.Width, Bmp.Height);然后用
FIndicators来画
const
MY_DRAWCELL = WM_USER + 10;type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
private
procedure MyDrawCell(var Msg: TMessage); message MY_DRAWCELL;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.DefaultRowHeight := 17;
StringGrid1.ColWidths[0] := 11;
end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ARow = TStringGrid(Sender).Row then
PostMessage(Handle, MY_DRAWCELL, Rect.Top, 0);
end;procedure TForm1.MyDrawCell(var Msg: TMessage);
const
{$J+}vWParam: DWORD = 0;{$J-}
begin
with StringGrid1.Canvas, Msg do
begin
///////Begin 清除上一次的三角
Pen.Color := clBtnFace;
Brush.Color := clBtnFace;
Polygon([
Point(3, vWParam + 3),
Point(8, vWParam + 8),
Point(3, vWParam + 13)
]);
///////End 清除上一次的三角 Pen.Color := clBlack;
Brush.Color := clBlack;
Polygon([
Point(3, WParam + 3),
Point(8, WParam + 8),
Point(3, WParam + 13)
]);
vWParam := WParam;
end;
end;