我正在制作一个拍摄屏幕快照的程序,并将其作为位图图片保存到文件夹中.我似乎遇到了一个问题,图片只是覆盖了自己.
任何人都可以告诉我如何能够这样做,当它保存时,数字会比最后一个高吗?例如:Save 1:Screenshot0001.bmp Save 2:Screenshot0002.bmp Save 3:Screenshot0003.bmp
等等.
有很多方法可以完成这样的事情.
就像你的数码相机一样; 有一个计数器并将其保存在文件或注册表中.您可能遇到多用户问题,您仍然需要处理图像已存在的情况.
不要使用递增数字,而是在文件名中写入日期时间.FileName:='Screenshot _'+ FormatDateTime('yyyymmdd-hhnnss-zzz.bmp',now());
做类似下面的代码,找到最新的数字.我认为这就是您所描述的内容,但请记住,当您编写更多图像时,此代码会变慢.有数千张图片和慢速驱动器或网络,它可以"挂起"您的程序.
..
i := 0; while FileExists(Format('%sScreenshot%.04d.bmp',[ImgPath,i])) do inc(i);