try
    if SavePictureDialog1.Execute then
    Image1.Picture.SaveToFile(SavePictureDialog1.filename);
    finally
    savepicturedialog1.Free;
    end;
这是代码,当第一次点击按钮可以,但是第二次就不行了!如过有更好的方法请写出来!

解决方案 »

  1.   

    你的Savepicturedialog1已经在第一次保存后被FREE掉了,当然在内存都不存在了,第二次当然不行了!如果是用的控件,就不要Free,如果是动态创建的SavepictureDialog,每次free后要再创建。
      

  2.   

    为什么要savepicturedialog1.Free,是动态生成的吗
    如不是,去掉这个吧,释放掉了,肯定不行啦
        
      

  3.   

    如果你的savepicturedialog不是动态创建的去掉savepicturedialog1.Free这句试试
      

  4.   

    : blackfiles说的对,看你有没有使用控件,控件是不能 Free掉的!
    try
        if SavePictureDialog1.Execute then
            Image1.Picture.SaveToFile(SavePictureDialog1.filename);
        finally
            Exit;
        end;
    这样不是很好吗?
      

  5.   

    去掉
    finally
        savepicturedialog1.Free;
    就可以了。