注册 登录
编程论坛 VB6论坛

生成 EXE 时,图片的路径问题?

苍穹之舞 发布于 2014-10-20 15:53, 637 次点击
Private Sub Command5_Click()
Timer1.Enabled = True  
 
Picture1.Enabled = False


解释:上面这段是单击按钮后,时钟控件启动

End Sub
Private Sub Timer1_Timer()

    Static n%
         
    n = n + 1
   
    Picture1.Picture = LoadPicture("D:\" & n & ".jpg")
      
    If n > 4 Then n = 1
    End If
      

End Sub

解释: 把D盘的图片依次向图片框里导入  图片的名称分别是 1, 2 ,3 ,4  到4 后,又从头开始

现在我的疑问是,我生存exe 文件后,拷贝到别人电脑, 我必须把四个图片也拷贝到他电脑的D盘里,才能正常显示图片

有没有办法,不必把图片拷到他的D盘呢?
6 回复
#2
wp2319572014-10-20 16:07
1、最好不要在程序中使用绝对路径
2、想不来回拷贝图片的  可以制作安装包(打包时把相关辅助文件都包含进去)  如果是绿色软件(只有一个exe那样的 就得把图片都放在exe中,调用时再释放出来)
#3
风吹过b2014-10-20 16:08
二种解决方法:
1、图片固定不变,那么把图片打包进 EXE 里,可以使用 资源文件, 也可以把图片放到 控件里。
优点,一个EXE搞定,缺点:EXE文件体积过大。


2、使用相对路径。把图片放到 EXE 一起,
如:   Picture1.Picture = LoadPicture(app.path & "\" & n & ".jpg")              '有BUG,EXE在根目录下会出现错误。
优点:EXE文件体积小,缺点:有产生额外的文件,要么打安装包,要么打压缩包。
#4
snrtjat2014-10-20 16:14
可以把图片和程序存放在同一个目录下,使用打包工具一起打包成安装文件。
使用者只需要正常安装你的安装包就可以正常运行了。
Picture1.Picture = LoadPicture(App.Path &"\"& n & ".jpg")

另,你的代码有问题,修改如下:
程序代码:

Private Sub Timer1_Timer()
    Static n%
    n = n + 1
    If n > 4 Then n = 1
    Picture1.Picture = LoadPicture(App.Path & "\" & n & ".jpg")

 End Sub

你已经设了时间控件的启用功能,那就应该有一个相应的停用功能存在。

[ 本帖最后由 snrtjat 于 2014-10-20 16:16 编辑 ]
#5
xzlxzlxzl2014-10-20 22:07
最简单的办法,用图片控件数组,设计时把需要的图片拖进相应的图片控件里,定时让对应的图片控件数组显示即可,代码如下:
Private Sub Timer1_Timer()
    Static n%  
    dim i as integer
    Picture1(n).visible=true
    for i=0 to Picture1.count-1
      if i<>n then  Picture1(i).visible=false
    next
    If n >= 4 Then n = 0
  End Sub

#6
yangfrancis2014-10-22 22:59
xzlxzlxzl的方法的确很好,反正你也只是四张图片循环,只需要添加四个图片控件即可。
#7
苍穹之舞2014-10-24 16:12
感谢各位热心指导,试着用相对路径,打了一个包

xzlxzlxzl的方法,容待有空细体验
1