老问题重问:关于RES文件和DrawGrid的使用……(200分)

  • 主题发起人 主题发起人 狐狸精
  • 开始时间 开始时间

狐狸精

Unregistered / Unconfirmed
GUEST, unregistred user!
我实在是脑袋进了水,请各位老师帮忙………

目的:从RES文件中取出图片,然后显示在DrawGrid的相应方格中。
(RES的图片为Bitmap的,共3个图片:标签、表格、备注)
操作过程:
菜单中有:添加标签、添加表格、添加备注三个菜单;
DrawGrid只有一列,当点击"添加标签"菜单时,取出标签图片放在第一个为空的方格中,
从第一行顺序往下填。当点击"添加表格"菜单时,取出表格图片放在第一个为空的方格中;
依此类推……
 
很简单呀
取图片用TResourceStream, TBitmap.LoadFromStream.
画图片用DrawGrid.OnDrawCell事件啦
只要记得在你选菜单后刷新一下drawgrid就可以了。
 
agree
流,easy
 
老大,我就是显示不对,随便我选哪个菜单,它都会把所有的方格都刷成那个菜单对应的图片,

老大,给段代码吧,我脑袋可能进了水,怎么写都一样,不是添加一个图片,而是把所有的
方格都改了。
 
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
bitmap1:tbitmap;
begin
if (arow=0) and (acol=0) then
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'标签');
DrawGrid1.Canvas.StretchDraw(rect,tgraphic(bitmap1));
finally
BitMap1.Free;
end;
end;
if (arow=1) and (acol=0) then
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'表格');
DrawGrid1.Canvas.StretchDraw(rect,tgraphic(bitmap1));
finally
BitMap1.Free;
end;
end;
if (arow=2) and (acol=0) then
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'备注');
DrawGrid1.Canvas.StretchDraw(rect,tgraphic(bitmap1));
finally
BitMap1.Free;
end;
end;
end;
 
分~~~~虽然不是我要的答案,但我得到提示了,已经做出来了[:D][:D][:D]
 
多人接受答案了。
 
后退
顶部