如何解决Timage的Width和Height值不受屏幕分辨率大小的限制 ( 积分: 200 )

  • 主题发起人 主题发起人 修罗
  • 开始时间 开始时间

修罗

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用画刷在Image里面画图,画的是流程图,图形较大,现在Image的Width和height值无法超过屏幕分辨率是,造成有些图画出来看不到。
请问有什么办法可以像画图工具那样,不受分辨率限制。
有其它途径解决这个问题也推荐一下,请高手们指点一下,谢谢。
 
这个问题问的好,我最近碰到了一个和Image有关的问题,插入Jpge时正常,插入一张Jpge后,所有插入记录均能正常显示,但如果试运行时,不插入记录(插入记录时必须插入图片,这是设定好了的),而是直接显示记录,程序就报错,access violation at address 怎么都查不出问题,借楼主地盘一用,呵呵,相关的问题,摆在一起,好讨论。
 
终于自己解决了,很简单的问题,自己真是菜鸟。TImage的Width和Height的根本没有限制,大小取决于放置它的容器,只要把Image放在TScrollBox上面,直接控制TScrollBox大小即可。

tianxin7131:
Image是无法直接从数据库读取图片的,通过内存流转换,从流载入图片会根据当初存入的图片类型有所不同。下面是我的一些代码,保存和读取图片的方法,或许对你有帮助:

var Str:TMemoryStream;
begin
Str:=TMemoryStream.Create;
Case SaveRead Of ////把image里的图片用流形式保存到数据库
0: Begin
If Image1.Picture.Graphic<>Nil Then
Begin
Image1.Picture.Graphic.SaveToStream(Str);
Str.Position:=0;
TblobField(DataSetSour.FieldByName(FieldString)).LoadFROMStream(Str);
End
Else
DataSetSour.FieldByName(FieldString).Value:=Null;
End;
1:
Begin
If DataSetSour.FieldByName(FieldString).Value ='' then //从数据库中取出流图片到Image
Begin
image1.Picture.Graphic:=Nil;
Exit;
End
Else
Begin
Try
Str.Position:=1;
TblobField(DataSetSour.FieldByName(FieldString)).SaveToStream(Str);
Str.Position:=1;
Image1.Picture.Graphic:=Nil;
Image1.Picture.Graphic:=TJpegImage.Create;
Image1.Picture.Graphic.LoadFROMStream(Str);
Except
TblobField(DataSetSour.FieldByName(FieldString)).SaveToStream(Str);
Str.Position:=1;
Image1.Picture.Graphic:=Nil;
Image1.Picture.Bitmap:=Tbitmap.Create;
Image1.Picture.Bitmap.LoadFROMStream(Str);
End;
End;
End;
End;
Str.Free;
end;
 
呵呵,太感谢楼主您啦,问您问题还送分,真是不好意思,楼主真是热心肠。以后楼主的贴,只要见到,我一定第一个顶。此贴我收藏,以后有问题还会请请楼主多多指教。
 
我的问题也解决了。还得谢谢楼主,参考一下楼主的代码,原来是我自己少了一行申明语句,加上去OK,谢谢楼主。
 
后退
顶部