我写了一个批量处理bmp图片的程序,也添加了Image控件来显示图片,但是只能等到所有图片处理完的时候Image才把最后一张图片显示出来.
请问有没有办法让Image显示出正在处理的图片?
代码如下:
begin
for piccount:=1 to 10 do//一共10张图片
begin
 pic:=TBitMap.Create;
 Image1.Picture.LoadFromFile('E:\picture\'+InttoStr(piccount)+'.bmp');
 pic.Canvas.Draw(0,0,pic);//*****************就是这步,必需要等过程运行完了才会显示出来**************************
//////////////////对某个图片的处理///////////////////////////
while (未处理完) do
begin
处理中......(处理时间约在2~3秒之间)
end;

解决方案 »

  1.   

    pic.Canvas.Draw(0,0,pic);//逻辑错误吧 
    pic.Canvas.Draw(0,0,Image1.Picture.Graphic);
      

  2.   

    改成:pic.Canvas.Draw(0,0,Image1.Picture.Graphic)后,问题依然~
      

  3.   

    pic.Canvas.Draw(0,0,pic); 后加入 application.processmessage 试试
      

  4.   

    循环中加
    Application.ProcessMessages;
    试试?
    或者改多线程操作?
      

  5.   

    循环就是这样,我也不知道为什么。后来在这里别人告诉我,你在载入图片后加个语句image1.refresh;应该可以的。