标题:连编与打包
只看楼主
heibaochen
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-7-23
结帖率:33.33%
已结贴  问题点数:10 回复次数:11 
连编与打包
程序连编后能正常运行,如下:


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

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

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

这两张图片是存储在数据库中数据表中某个Blob字段中的,呃,不知道问题出在哪里。
搜索更多相关主题的帖子: 图片 显示 运行 连编 打包 
2023-05-15 17:53
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:3 
建议:图片保存在memo字段里,不会出现这样的问题
2023-05-15 21:26
heibaochen
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-7-23
得分:0 
回复 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编辑过]

2023-05-15 22:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:3 
是不是路径设置问题

坚守VFP最后的阵地
2023-05-15 22:25
heibaochen
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-7-23
得分:0 
回复 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编辑过]

2023-05-15 22:29
shizi0
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:32
专家分:116
注 册:2012-10-2
得分:3 
程序自己显示用到的的图片、图标等,不是用户数据,属于“程序”本身,要作为资源文件包含在项目中【项目管理器-其他-文本文件&其他文件】。
这些资源,程序代码如果有调用,可以忽略路径
2023-05-15 22:57
heibaochen
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-7-23
得分:0 
回复 6楼 shizi0

用到的两个图片文件,如此。
2023-05-15 23:36
shizi0
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:32
专家分:116
注 册:2012-10-2
得分:0 
对于编译后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
2023-05-15 23:47
heibaochen
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-7-23
得分:0 
回复 8楼 shizi0
为方便打包,程序也是练手,所有的资源都在一个文件夹里呢。
2023-05-16 00:02
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
* 保存时
xstr=filetostr('mepic.jpg')
replace pict1 with strconv(xstr,13)

* 使用时
strtofile(strconv(alltrim(pict1),14),磁盘文件名)
Thisform.pageframe1.page4.image1.Picture = 磁盘文件名
2023-05-16 08:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512203-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049041 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved