回 帖 发 新 帖 刷新版面

主题:照片在image控件中的显示和插入表中"照片"通用字段

编写了一表单,有label1(caption):学号、label2(caption)::姓名、label3(caption)::照片
text1用于输学号。单击查询命令按钮则:text2显示出此学号的对应的姓名,image1显示此学号对应的照片。问题是
1.如何让image控件显示出对应的照片。我的代码是:
select 姓名,照片 from student where 学号=alltrim(thisform.text1.value) into cursor aa
thisform.image1.picture=aa.照片
但是出错。
2.将某一照片显示到image控件后单击录入按钮后,如何将些照片输入到照片字段中
3.同时还有一个问题:连编成功的.exe文件在U盘中如何让其在别的电脑上能用。我的主文件命令中有一句:set default to H:\file 但到其他电脑我的U盘盘符变为D或J,运行.exe时提示“找不到路径”。有什么方法可修改使之通用(我认为是set default to h:\file这条绝对路径惹的祸)?

回复列表 (共21个回复)

11 楼


问题解决,感谢!现在询问您两个别的问题:
描述:
1.生成的.exe文件打开输入密码后单击登陆后开始播放背景音乐,[color=FF0000]现在要求背景音乐不停的循环播放直到关闭程序[/color]。我在“登陆”命令按钮中代码是:
  ........(验证密码正确与否的代码)
  do cd.mpr(如果密码正确运行一个菜单)
  thisform.release  
  set bell on
  set bell to "音乐名.wav"
  set bell off
(1)我的代码结果是运行后只播一遍音乐便停止,如何让其循环播放直到关闭?
(2)难度大一点:添加一个命令按纽,代码如何写来控制音乐的暂停和播放。
(3)难度再大点:多个背景音乐时set bell to 命令该怎么写?
2.有一个表hx:编号 c(3),日期 d(8),项目 c(10),金额 n(4,2)  (注:项目内容重复,只有固定的5个内容)。建立表单cx(查询)scx,现在想输入日期后显示此日期各项目金额所占的比重图。[color=00FF00]用什么控件和代码如何编写?[/color](考虑到hx表内容随时会增加,想用查询设计器向导生成一图表,但是保存时变成了一表单,而我想让其成为我cx(查询).scx中的一个控件。请问如何办)

希望这位高手给予回答,最高分给您。


12 楼


select * from student where 学号=alltrim(thisform.text1.value) into cursor lsb
thisform.text2.value=lsb.姓名
thisform.combo1.value=lsb.性别
thisform.text3.value=lsb.身份证号
thisform.text4.value=lsb.出生日期
thisform.text5.value=lsb.家庭地址
thisform.text6.value=lsb.电话
thisform.image1.picture=lsb.照片(字段为字符型)
最后一句没结果,image控件仍为空不显示我text1中输入学号的照片。
如果改为zp=lsb.照片
thisform.image1.picture=loadpicture(zp)
出错信息为:文件 d:\data\.bmp不存在。注:我的照片格式是bmp格式且放在data文件夹中。

13 楼

[quote]
thisform.image1.picture=lsb.照片(字段为字符型最后一句没结果,image控件仍为空不显示我text1中输入学号的照片。)[/quote]
照片字段的内容应该为“d:\data\XXX.bmp”

[quote]
出错信息为:文件 d:\data\.bmp不存在。注:我的照片格式是bmp格式且放在data文件夹中。[/quote]
缺少主文件名

14 楼


感谢您长时间的关注和回答我的疑问。
1.您说的照片字段的内容为:d:\data\xxx.bmp是正确的,我查看了表中显示的内容。
2.第二个说是缺少主文件,不太懂,望详细些
希望这位高手不吝赐教。该[color=FF0000]如何修改这段代码让text1中所输入的学号所对应的照片正确显示在image1控件中[/color]。(字段照片为字符型,照片格式是bmp)

15 楼


WJM="d:\data\"+alltrim(thisform.text1.value)+".bmp" 
12楼最后一行提到“出错信息为:文件 [color=FF0000]d:\data\.bmp[/color]不存在。”
红字部分有路径和文件扩展名,而缺少了文件名。

16 楼


&&&基本思路:先用一个表单将照片的地址存放到相应表的备注型字段;再用后面的代码
LOCAL MY_FILE,MY_TEXT,MY_MEMO
&&&&&&&&&&&以下代码导入照片存放的地址到myimage(myimage为存放照片地址的备注型字段)
MY_FILE=UPPER(GETFILE())
IF EMPTY(MY_FILE)
    RETU
ENDIF
MY_MEMO=PADR(JUSTFNAME(MY_FILE),128," ")+FILETOSTR(MY_FILE)
SELE STUDENT
LOCA FOR 学号=ALLTRIM(THISFORM.TEXT1.VALUE)
IF FOUN()
    REPL MYIMAGE WITH MY_MEMO
ENDI
&&&&&&&&&&&以上代码导入照片存放的地址到myimage(myimage为存放照片地址的备注型字段)

&&&&&&&&&&&以下代码导除照片存放的地址,显示照片到控件image1   myphoto为存放照片的局部变量
&&&&&打开相应的表 定位到相应的记录,找到后将你的相应的库中的照片地址赋给myphoto
SELE STUDENT
LOCA FOR 学号=ALLTRIM(THISFORM.TEXT1.VALUE)
IF FOUN()
    MYPHOTO=ALLT(LEFT(STUDENT.MYIMAGE,128))
    =STRTOFILE(SUBST(MYIMAGE,129),MYPHOTO,.F.)
    THISFORM.IMAGE1.PICTURE=MYPHOTO
ENDI
&&&&&&&&&&&以上代码导除照片存放的地址,显示照片到控件image1

17 楼


您没有理解我的意思,您的代码是如何输入在image控件中显示选定的照片。[color=FF0000]我的意思是在text1中输入学号然后单击查询按钮后,那么所对应的此学号的照片立刻显示在image控件中。[/color]感谢您的回答。student中的字段为: 学号 c(10),姓名 c(6),性别 c(2),照片 c(30)。但是还是要非常感谢您不辞劳苦写这么一大段代码。

18 楼

你用的vfp是什么版本的?

19 楼

loca for 学号=alltrim(thisform.text1.text)
if found()
thisform.image1.picture=照片
endif

20 楼


你的student表中字段【照片】是字符型,个人觉得这不是一个好的方法。【照片】最好是存放你所对应的学生照片的路径地址,应该是备注型字段较好,而不是是字符型。因为如果学生记录足够多的话,那你的表会非常大,这样对运行效率会有很大的影响。我的上面的代码就是基于此不论你的照片多大,只需调用显示即可。

我来回复

您尚未登录,请登录后再回复。点此登录或注册