请问怎么在DBGRID里添加图片???UP有分 帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在DBGRID里添加图片?加什么图片?多大?能显示出效果吗?http://218.56.11.178:8020/web/index.aspx-》下载基地-》例程-数据库/报表-》 数据库图片bmp/jpg存储(Accsee)/数据库存储bmp/jpg图片(sql server)不知是否你想要的? 估计你只能是在DrawDataCell事件里自己画了,为什么非用DBGRID呢,用TMS的TDBADVSTAINGGRID吧,它有很多东东的,完成你的任务,小菜了。 DBGRID里加图片那样字体反而看不清楚没必要追求这样的美观吧! 好像用DbgridEh,得到的图片效果还不错,可以找到这控件试试。 没必要吧,把图片存入SQL不就很好吗? TStringGrid 好象可以加图片 你这样写 看行不行,TStringGrid(DBGrid1).Cells[0][0]='c:\1.bmp';没试! 好象不行,还是单独做一个加图片的DBIMAGEhttp://218.56.11.178:8020/web/index.aspx-》下载基地-》例程-数据库/报表-》数据库图片bmp/jpg存储(Accsee) 要显示的图片放在控件Image1: TImage;全局变量:selNo: integer;Table1的AfterScroll事件:procedure TForm1.Table1AfterScroll(DataSet: TDataSet);begin selNo := table1.RecNo;end;DBGrid1的DrawColumnCell事件:procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);var rr: TRect;begin with TDBGrid (Sender) do begin if DataSource.DataSet.RecNo mod 2 = 0 then Canvas.Brush.Color := clLime else Canvas.Brush.Color := clRed; if DataSource.DataSet.RecNo = selNo then Canvas.Brush.Color := clBlue; DefaultDrawColumnCell(Rect, DataCol, Column, State); if DataCol = 0 then begin rr := Rect; rr.Right := rr.Right div 2; Canvas.StretchDraw(rr,Image1.Picture.Bitmap); end;//if end;//withend; 为什么非要在DBGRID中加图片呢?????佩服楼主的精神! grid好象不行,加一个IMAGE巴 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);var Bitmap:TBitmap; p:TPoint;begin TDBGrid (Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); if Column.FieldName='BMP' then begin try Bitmap:=TBitmap.Create; Bitmap.Assign(TDbGrid(Sender).DataSource.DataSet.FieldByName('BMP')); p:=Rect.TopLeft; ClientToScreen(p); TDbGrid(Sender).Canvas.StretchDraw(Rect,Bitmap); finally Bitmap.Free; end; end;end; 上面的那个有Bug,这一个好一些:给分吧。procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);var Picture:TPicture;begin TDBGrid (Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); if TDbGrid(Sender).DataSource.DataSet.Fields[DataCol].IsBlob then begin try Picture:=TPicture.Create; Picture.Assign(TDbGrid(Sender).DataSource.DataSet.Fields[DataCol]); TDbGrid(Sender).Canvas.StretchDraw(Rect,Picture.Graphic ); finally Picture.Free; end; end;end; VCL会不会成为DELPHI的包袱? 无法捕捉错误,希望出错后关闭程序,该怎么做? Indy10的帮助文件 经纬度与(公里)km怎么换算?? 如何在delphi中使用临时表. 各位,帮忙看一段代码?谢谢! 如何用DELPHI实现弹出调色板供用户实现选色功能 在线等待有两个表Table1、Table2 我想从Table1表查出记录存到Table2表中 用一条语名来完成 当Tedit的Enabled为false时,如何将它的颜色设为clBtnFace DAX error错误,紧急在线求助 急!在线等候 这是不是ado的bug?????????
那样字体反而看不清楚
没必要追求这样的美观吧!
你这样写 看行不行,TStringGrid(DBGrid1).Cells[0][0]='c:\1.bmp';
没试!
Image1: TImage;全局变量:
selNo: integer;Table1的AfterScroll事件:
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
selNo := table1.RecNo;
end;
DBGrid1的DrawColumnCell事件:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
rr: TRect;
begin
with TDBGrid (Sender) do begin
if DataSource.DataSet.RecNo mod 2 = 0 then
Canvas.Brush.Color := clLime
else
Canvas.Brush.Color := clRed;
if DataSource.DataSet.RecNo = selNo then
Canvas.Brush.Color := clBlue;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
if DataCol = 0 then begin
rr := Rect;
rr.Right := rr.Right div 2;
Canvas.StretchDraw(rr,Image1.Picture.Bitmap);
end;//if
end;//with
end;
佩服楼主的精神!
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Bitmap:TBitmap;
p:TPoint;
begin
TDBGrid (Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
if Column.FieldName='BMP' then
begin
try
Bitmap:=TBitmap.Create;
Bitmap.Assign(TDbGrid(Sender).DataSource.DataSet.FieldByName('BMP'));
p:=Rect.TopLeft;
ClientToScreen(p);
TDbGrid(Sender).Canvas.StretchDraw(Rect,Bitmap);
finally
Bitmap.Free;
end;
end;
end;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Picture:TPicture;
begin
TDBGrid (Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
if TDbGrid(Sender).DataSource.DataSet.Fields[DataCol].IsBlob then
begin
try
Picture:=TPicture.Create;
Picture.Assign(TDbGrid(Sender).DataSource.DataSet.Fields[DataCol]);
TDbGrid(Sender).Canvas.StretchDraw(Rect,Picture.Graphic );
finally
Picture.Free;
end;
end;
end;