注册 登录
编程论坛 VFP论坛

求助:在VFP表格内显示以二进制保存的图片字串的图片,关健语句是什么。

liunis 发布于 2022-07-13 16:51, 2015 次点击
我的一个表内 temp 内有一个字段 pict ,类型是M型。

OutputFile='D:\ABC.JPG'
replace pict with filetostr(OutputFile) &&将文件保存为字串


我在表格GIRL1的column1 内添加了一个 image1 控件

然后怎样才能在表格COLUMN1内显示这个这个图片呢?是不是不能用这个image1控件
17 回复
#2
liunis2022-07-13 16:54
像这样显示。
只有本站会员才能查看附件,请 登录
#3
csyx2022-07-13 17:47
要稍微复杂一点的技巧才行,涉及著名的 BackStyle 属性
百度一下,关键字:vfp grid 显示图片 BackStyle

https://bbs.

[此贴子已经被作者于2022-7-13 17:51编辑过]

#4
liunis2022-07-13 20:02
回复 3楼 csyx
谢谢3楼 csyx。功力不够,我以为几句就完事
#5
zhken2022-07-14 11:37
可以釆用固定表格行数的分页方法,比如只显10行,添加10个图片控件在表单上,用上一页下一页来显示对应的图片,但也有一些编辑上的问题,显得不是太方便,但足够用了,比放在表格上要间单多了
#6
吹水佬2022-07-14 15:13
回复 楼主 liunis
先说说怎样用image显示M字段的JPG
#7
吹水佬2022-07-14 16:25
假设ppath字段存放JPG路径
主要大概是这样
程序代码:

DEFINE CLASS myform as Form
    ADD OBJECT grid1 as grid
    PROCEDURE grid1.init
        this.RowHeight = 100
        this.column1.RemoveObject("text1")
        this.column1.AddObject("image1","myImage")
        this.column1.sparse = .F.
    ENDPROC
ENDDEFINE

DEFINE CLASS myImage as Image
    Stretch = 1
    Visible = .T.
    PROCEDURE BackStyle_ACCESS
        this.picture = ppath
        RETURN this.BackStyle
    ENDPROC
ENDDEFINE
#8
厨师王德榜2022-07-14 16:35
图片的话,还是放二进制字段好一些,不要放M字段中.
#9
zhken2022-07-14 21:04
采用set key to 加以控制,也基本可行
只有本站会员才能查看附件,请 登录
#10
zhken2022-07-14 21:15
是每页限制固定记录数,上表图片是从M字段取得的数据流,即pictureval,
用这种方式是当删除一行时,图片就没了。如果额外存放,当多页面操作删除时,忘删图片时会造成很多垃级,当这些图放在同一个目录时还要去维护名称。有利有弊吧。文件方式表格上容易操作。
#11
zhken2022-07-14 21:23
采用set key to 加以控制,也基本可行
只有本站会员才能查看附件,请 登录
#12
liunis2022-07-15 19:04
回复 7楼 吹水佬
添加图片可以了,但是发现一个问题,就是最后一行图片的CLICK RCLICK 才会响应事件,前面的行,单击图片不会执行CLICK事件。如果有10行,第10行才会响应。有遇到此问题吗。
#13
吹水佬2022-07-15 19:33
回复 12楼 liunis
具体情况不明不好说
最好放点可测试的东东上来试试
#14
liunis2022-07-16 12:11
回复 13楼 吹水佬
大佬帮看看。
[local]1[/local]
#15
liunis2022-07-16 14:07
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
#16
吹水佬2022-07-16 16:29
回复 15楼 liunis
测试了一下
grid的AfterRowColChange事件中去掉THISFORM.Refresh是可以触发
有点怪怪的,第一次点击要点选未活动的记录,再点击才触发
#17
liunis2022-07-17 09:31
将就用吧。感谢吹大佬。
#18
shenlancwz2022-07-17 15:27
第一种方法:最好是图片单独存放,不要放在dbf文件中,不然随着数据增多会导致dbf过大。用一个字段存储文件存放路径即可,在需要显示时再根据路径调用。图片的存放路径可以根据表的名称设置文件夹,内部的图片用记录的ID号进行关联。
第二种方法:图片的存放原理同上,但显示数据的界面可以灵活多变,动态生成显示界面,象动态生成网页一样。因为用Grid去显示图片的效果非常差。
1