I iceiceberg Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-11 #1 我把几个需要在程序中调用的图片放在了和程序相同的目录里,在delphi中编译通过,运行也正常。但是退出delphi后,直接运行project1.exe却提示:“无法找到c:/red.bmp”。这是为什么呢?要如何避免这种情况的发生?
我把几个需要在程序中调用的图片放在了和程序相同的目录里,在delphi中编译通过,运行也正常。但是退出delphi后,直接运行project1.exe却提示:“无法找到c:/red.bmp”。这是为什么呢?要如何避免这种情况的发生?
T thx1180 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-11 #3 你应该用GetCurrentDir函数获取当前目录,再加上图片文件名调用就可以了。
I iceiceberg Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #4 image1.picture.loadFromFile('red.bmp'); 有错吗? 非得用GetCurrentDir 吗?那为什么在delphi中运行正常呢?
W wfzha Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #6 你的代码是从当前路径获取文件,如果程序中当前路径改变了,就不行了. 写成这样看看: image1.picture.loadFromFile(Extractfilepath(application.exename)+'red.bmp');
你的代码是从当前路径获取文件,如果程序中当前路径改变了,就不行了. 写成这样看看: image1.picture.loadFromFile(Extractfilepath(application.exename)+'red.bmp');
L lwluser Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #7 var sFile:String; begin sFile:=ExtractFilePath(Application.ExeName)+'/'+'red.bmp'; if FileExists(sFile) then image1.Picture.LoadFromFile(sFile);
var sFile:String; begin sFile:=ExtractFilePath(Application.ExeName)+'/'+'red.bmp'; if FileExists(sFile) then image1.Picture.LoadFromFile(sFile);
I iceiceberg Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #8 to wfzha: 当前路径是什么意思?我只是在d盘运行一下程序,怎么会莫名地去找c盘呢?
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #9 >>来自:thx1180, 时间:2003-8-11 23:33:00, ID:2101741 >>你应该用GetCurrentDir函数获取当前目录,再加上图片文件名调用就可以了。 嘿嘿,他老兄正好弄反了,你使用 image1.picture.loadFromFile('red.bmp'); 就相当于从当前目录中寻找Red.BMP 要使用Application.ExeName的路径。这些楼上已经说了。 我要说的是,程序运行的时候都有一个缺省的当前路径,如果程序中没有更改路径操作,那么一般默认为程序所在路径,但是,如果你并不是通过双击文件运行的程序,而是通过快捷方式运行的,快捷方式有一个“起始位置”的选项,就是标志程序的当前目录的。 GetCurrentDir就是获取程序所在的当前位置的。
>>来自:thx1180, 时间:2003-8-11 23:33:00, ID:2101741 >>你应该用GetCurrentDir函数获取当前目录,再加上图片文件名调用就可以了。 嘿嘿,他老兄正好弄反了,你使用 image1.picture.loadFromFile('red.bmp'); 就相当于从当前目录中寻找Red.BMP 要使用Application.ExeName的路径。这些楼上已经说了。 我要说的是,程序运行的时候都有一个缺省的当前路径,如果程序中没有更改路径操作,那么一般默认为程序所在路径,但是,如果你并不是通过双击文件运行的程序,而是通过快捷方式运行的,快捷方式有一个“起始位置”的选项,就是标志程序的当前目录的。 GetCurrentDir就是获取程序所在的当前位置的。
I iceiceberg Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-12 #10 上机试了一下,如楼上几位所言。 我令sFile:=ExtractFilePath(application.ExeName); 再用image1.picture.loadFromFile(sFile+'red.bmp'); 调用成功!(to lwluser:好象不用加 '/') 若使用GetCurrentDir,则又会去找c盘! 但是,开始时我是直接在文件夹里双击文件启动程序的,并没有使用桌面快捷方式。为什么这样当前目录会变成C:/呢?而在delphi中直接运行,当前目录则是程序所在路径。
上机试了一下,如楼上几位所言。 我令sFile:=ExtractFilePath(application.ExeName); 再用image1.picture.loadFromFile(sFile+'red.bmp'); 调用成功!(to lwluser:好象不用加 '/') 若使用GetCurrentDir,则又会去找c盘! 但是,开始时我是直接在文件夹里双击文件启动程序的,并没有使用桌面快捷方式。为什么这样当前目录会变成C:/呢?而在delphi中直接运行,当前目录则是程序所在路径。
I iceiceberg Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-13 #12 太搞笑了吧!!我终于找到了问题的所在:我在文件夹里用“缩略图”模式浏览时,就会发生调用错误:can't open file:"c:/windows/Temporary Internet Files/red.bmp";而用别的模式(如小图标)浏览时,则调用正常!!这 也太夸张了吧。是不是winme的bug呀?
太搞笑了吧!!我终于找到了问题的所在:我在文件夹里用“缩略图”模式浏览时,就会发生调用错误:can't open file:"c:/windows/Temporary Internet Files/red.bmp";而用别的模式(如小图标)浏览时,则调用正常!!这 也太夸张了吧。是不是winme的bug呀?