注册 登录
编程论坛 VFP论坛

连编与打包

heibaochen 发布于 2023-05-15 17:53, 171 次点击
程序连编后能正常运行,如下:
只有本站会员才能查看附件,请 登录


页面中是两个图象控件,两张JPG图片。

连编前在VFP的源项目文件夹中能正常显示;连编后也能正常显示。

但,拷到别的机器上后(有运行库),图片无法显示,其他一切正常。

这两张图片是存储在数据库中数据表中某个Blob字段中的,呃,不知道问题出在哪里。
11 回复
#2
laowan0012023-05-15 21:26
建议:图片保存在memo字段里,不会出现这样的问题
#3
heibaochen2023-05-15 22:23
回复 2楼 laowan001
试过了不行,下面是代码,小白努力学习中
在page4的init事件,pict1是字段名
程序代码:

USE classes IN 1
GO TOP
Thisform.pageframe1.page4.image1.PictureVal = pict1
SKIP
Thisform.pageframe1.page4.image2.PictureVal = pict1
CLOSE TABLES


[此贴子已经被作者于2023-5-15 22:25编辑过]

#4
sdta2023-05-15 22:25
是不是路径设置问题
#5
heibaochen2023-05-15 22:29
回复 4楼 sdta
也考虑到了,但有个问题卡住了

这是主程序中路径的部分
程序代码:

PUBLIC LCSys16,LCNowpath
LCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。
LCNowpath=LEFT(LCsys16,RAT("\",LCSys16,1)) &&获取当前运行程序所在工作目录。
SET DEFAULT TO (LCNowpath) &&程序文件所在的当前路径


然后在page4的init事件中
程序代码:

lj1=LCNowpath+"logo.jpg"
lj2=LCNowpath+"mepic.jpg"

Thisform.pageframe1.page4.image1.Picture =  &lj1

Thisform.pageframe1.page4.image2.Picture =  &lj2


卡在这里了,它提示找不到LCNowpath全局变量,我整不会了……
(用这个是想绕开字段的办法,直接用image的picture属性。)

[此贴子已经被作者于2023-5-15 22:32编辑过]

#6
shizi02023-05-15 22:57
程序自己显示用到的的图片、图标等,不是用户数据,属于“程序”本身,要作为资源文件包含在项目中【项目管理器-其他-文本文件&其他文件】。
这些资源,程序代码如果有调用,可以忽略路径
#7
heibaochen2023-05-15 23:36
回复 6楼 shizi0
只有本站会员才能查看附件,请 登录

用到的两个图片文件,如此。
#8
shizi02023-05-15 23:47
对于编译后exe来说:既然图片包含在项目中了,那代码调用就不需要路径,直接=文件名即可。如楼主语句应为:
Thisform.pageframe1.page4.image1.Picture =  "logo.jpg"

那怎么解决开发时交互环境的调试呢?set path to 所有资源文件+程序文件路径。大体如下:
If _vfp.Startmode=0  &&交互调试
    AddPath=_pubPath+[;]+_PrgPath+[;]+_PubPath+[Img\;]+_PubPath+[ico\;]+_PubPath+[ani\;]+Justdrive(_Path)+[\Api\;]+_PrgPath+[CW\;]+_PrgPath+[ZH\]
    Set Path To "&AddPath" Additive
Endif
#9
heibaochen2023-05-16 00:02
回复 8楼 shizi0
为方便打包,程序也是练手,所有的资源都在一个文件夹里呢。
#10
laowan0012023-05-16 08:00
* 保存时
xstr=filetostr('mepic.jpg')
replace pict1 with strconv(xstr,13)

* 使用时
strtofile(strconv(alltrim(pict1),14),磁盘文件名)
Thisform.pageframe1.page4.image1.Picture = 磁盘文件名
#11
hu9jj2023-05-16 08:56
应该还是图片文件的路径问题。
#12
heibaochen2023-05-16 23:02
回复 10楼 laowan001
我还在外面忙,等明天按您的办法搞一下子
1