如何设置TjpegImage 的图片属性!

yangzong20 2011-10-10 10:15:49
我做了一个把图片显示在DBGridEh的功能,代码如下

procedure TfrmDLLForm.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
bmp:tbitmap;
jpeg:TjpegImage;
outrect:trect;
bmpwidth:integer;
begin
outrect:=rect;
if ((column.Field =ADOQuery3.fields.FieldByName('t1'))) and (not ADOQuery3.fields.FieldByName('t1').IsNull) then
begin
jpeg := TjpegImage.Create;
jpeg.Performance:=jpBestSpeed;
try
jpeg.Assign(ADOQuery3.fieldbyname('t1'));
outrect.Right :=rect.Left +bmpwidth;
DBGridEh2.Canvas.StretchDraw(outrect,jpeg);
except
jpeg.free;
end;
end;

end;

但我不懂TjpegImage 的那个属性是设置图片自动适合大小的,就像Image1.Proportional:=true一样,在TjpegImage里如何设置才能达到这样的效果,麻烦告知,谢谢
...全文
120 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
广州佬 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 funxu 的回复:]
是按照image大小自动调整图片
才是自动调整image大小
[/Quote]
lz的代码可以看到,他是指定了输出范围的大小的,自然,就该使用Image.Stretch:=true;,而不是image.autosize。
funxu 2011-10-10
  • 打赏
  • 举报
回复
Image.Stretch:=true; 是按照image大小自动调整图片
image.autosize 才是自动调整image大小
广州佬 2011-10-10
  • 打赏
  • 举报
回复
procedure TfrmDLLForm.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var bmp:tbitmap;
jpeg:TjpegImage;
outrect:trect;
bmpwidth:integer;
Image:TImage;
begin
outrect:=rect;
if ((column.Field =ADOQuery3.fields.FieldByName('t1'))) and (not ADOQuery3.fields.FieldByName('t1').IsNull) then
begin
jpeg := TjpegImage.Create;
jpeg.Performance:=jpBestSpeed;//这句其实可以不要
Image:=TImage.Create(self);
try
jpeg.Assign(ADOQuery3.fieldbyname('t1'));
outrect.Right :=rect.Left +bmpwidth;//照搬你的句子,但你没交代清楚这是为什么
Image.Width:=outrect.Right-outrect.Left;
Image.Height:=outrect.Bottom-outrect.Top;
Image.Stretch:=true;
Image.Picture.Graphic:=jpeg;
DBGridEh2.Canvas.StretchDraw(outrect,Image.Picture.Graphic);//画的位置未为你考虑、按你原输出位置画
finally
Image.Free;
jpeg.free;
end;
end;
end;

代码未经测试,但也差不离了,请自行测试。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧