| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1547 人关注过本帖
标题:一个图片显示的问题
只看楼主 加入收藏
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
结帖率:73.47%
收藏
已结贴  问题点数:20 回复次数:6 
一个图片显示的问题
在某A表单运行后,感觉还可以把单据图片显示出来。于是在目录中添加了一个图片文件夹用于存放单据图片
然后又建立了一个地址表B,二个字段,一个文字型,用来存放图片地址(绝对路径),一个数据型和A表ID关联,在A表单上增加一个按钮,用以调用B表单(图片显示)。
另创建B表单,专门显示图片。
按钮代码如下
PUBLIC nID ,C图片地址



SELE A表
 nID=ID
 SELE B表
 LOCATE FOR A表ID=nID
 IF Found()
  c图片地址=alltrim(B表.地址)
   DO FORM  C:**\B表单图片显示
  else
  =messagebox('本记录无单据.',0+48+0,'提示')
endif
  B表单只有二个个控件,IMAGE1和退出按钮
 在B表单的属性ACTIVATE EVENT 写入代码如下:

if empty(c图片地址)=.f.
   thisform.image1.picture=c单据地址
  endif
 thisform.refresh
OK 运行正常。
但是几天后,添加一图片后,无法显示,呈死循环状况。表单可以显示,图片无法显示,然后死机。
开始以为是程序有问题,反复检查,没有发现问题。又以为是图片地址(路径)有误,也没有发现。
最后才发现,其它图片可以正常显示,表单也可以正常运行和退出。只有调用这张图片的时候,就出问题。
我的解决办法就是重新制作一张同名图片,放到同一地址,删除原有图片。程序运行正常。

疑惑,图片可以影响程序的运行?感觉不会。

搜索更多相关主题的帖子: 地址 图片 显示 表单 运行 
2021-05-17 22:47
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
给出有问题的图片和代码,不然人家怎么帮你解决问题呀
2021-05-18 08:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
1、thisform.image1.picture=c单据地址
应该是 thisform.image1.picture=c图片地址

2、可以的话,不要放在 ACTIVATE EVENT 载入图片,否则要控制好ACTIVATE事件的事务处理,ACTIVATE事件可能会因其他事情触发出现意想不到的结果。

3、试试放在init事件处理:

SELE A表
nID=ID
SELE B表
LOCATE FOR B表.ID==nID
IF Found()
  DO FORM  C:**\B表单图片显示 WITH alltrim(B表.地址)
else
  =messagebox('本记录无单据.',0+48+0,'提示')
endif

B表单 init 事件:
LPARAMETERS c图片地址
IF FILE(c图片地址)
   this.image1.picture = c图片地址
ENDIF



2021-05-18 08:10
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 3楼 吹水佬
好的,谢谢
2021-05-18 19:15
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 3楼 吹水佬
IF Found()
  DO FORM  C:**\B表单图片显示 WITH alltrim(B表.地址)****此句没有读懂。
else
  =messagebox('本记录无单据.',0+48+0,'提示')
endif
查过帮助文件,只找到with .....endwith 的用法。单独的with 语句如何理解?可否讲解一下。谢谢!
2021-07-11 07:06
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:610
专家分:1784
注 册:2017-7-16
收藏
得分:0 
从模式表单返回需要的值
你学习一下启动表单的DO语句就明白了。

上面吹水佬是说话和软,其实代码都是写入INIT事件,很少写入ACTIVE中。

[此贴子已经被作者于2021-7-11 08:37编辑过]

2021-07-11 08:34
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 6楼 gs2536785678
谢谢!
2021-07-11 22:01
快速回复:一个图片显示的问题
数据加载中...
 
   



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

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