image中翻stream图出现花屏? ( 积分: 0 )

  • 主题发起人 主题发起人 gl_jswx
  • 开始时间 开始时间
G

gl_jswx

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟初来,烦请各位好心人帮忙。
我用IMAGE放图,读ACCESS的某个字段值,我敲回车开始翻,空格停止,不过在翻图时出现花屏(有的图片下部会有花屏现象,首先肯定不是显卡问题):
--------------------------------------------------------
procedure TFrmtombola.showimage;//显示图片
var tempstream:TMemoryStream;
tempjpeg :TJPEGImage;
begin
try
tempstream:=TMemoryStream.Create;
TBlobField(Query2.FieldByName('产品商标')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
Image2.Picture.Bitmap.Assign(tempjpeg);
image2.Update;
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
-----------------------------------------------------
procedure TFrmTombola.Timer1Timer(Sender: TObject);//随机取图
begin
query2.Locate('产品编号',random(strtoint(query1.Fields[0].asstring)),[]);
frmtombola.showimage;
end;
-----------------------------------------------------
我的疑惑:
1、在另一窗体中通过BUTTON的ONCLICK事件一个一个翻没问题,在这能过随机函数却出现花屏;
2、我把速度放至很慢,却仍有花屏现象,好像又不是刷新问题;
3、我已经把IMAGE控件放在Panel上了
 
小弟初来,烦请各位好心人帮忙。
我用IMAGE放图,读ACCESS的某个字段值,我敲回车开始翻,空格停止,不过在翻图时出现花屏(有的图片下部会有花屏现象,首先肯定不是显卡问题):
--------------------------------------------------------
procedure TFrmtombola.showimage;//显示图片
var tempstream:TMemoryStream;
tempjpeg :TJPEGImage;
begin
try
tempstream:=TMemoryStream.Create;
TBlobField(Query2.FieldByName('产品商标')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
Image2.Picture.Bitmap.Assign(tempjpeg);
image2.Update;
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
-----------------------------------------------------
procedure TFrmTombola.Timer1Timer(Sender: TObject);//随机取图
begin
query2.Locate('产品编号',random(strtoint(query1.Fields[0].asstring)),[]);
frmtombola.showimage;
end;
-----------------------------------------------------
我的疑惑:
1、在另一窗体中通过BUTTON的ONCLICK事件一个一个翻没问题,在这能过随机函数却出现花屏;
2、我把速度放至很慢,却仍有花屏现象,好像又不是刷新问题;
3、我已经把IMAGE控件放在Panel上了
 
procedure TFrmtombola.showimage;//显示图片
var tempstream:TMemoryStream;
tempjpeg :TJPEGImage;
begin
try
tempstream:=TMemoryStream.Create;
TBlobField(Query2.FieldByName('产品商标')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
Image2.Picture.Bitmap.Assign(tempjpeg);
image2.Update;
***************************************
TFrmtombola.Update; //将窗体更新一次就行了。但是这样会很浪费你内存的
***************************************
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
 
最好是不要太耗内存的,因为我要把它放到老机上的。
 
接受答案了.
 
后退
顶部