根据提供的其他答案,我认为您的问题含糊不清且具有误导性。听起来像你有一个教师和学生的数据库(很像健身房的会员资格或类似的)。对于数据库中的每条记录,您都有一个与该人关联的图像文件。该图像可能是实际表的一部分,或者只是指向驱动器共享上特定目录的文件名,所有人物图像都可用。
因此,这些人拥有身份证,当他们进入特定设施(例如您的图书馆)时,他们会通过读卡器读取身份证。那时您正在从您的网络用户数据库中进行搜索,找到该用户并将图像拉到屏幕上以显示此人的身份,以帮助防止有人使用他人的身份证进行欺诈。这使得监控入口区域的人可以确保吉姆没有使用“比尔的身份证来获得访问权限。
如果是这种情况,并且您的 VFP 应用程序已经在运行并准备好从读卡器读取数据,则您只需将图像文件添加到屏幕以在某处进行演示。然后,根据您找到适当的 ID,获取记录,分析(如果记录的一部分或只是给定图像路径中的文件名),获取图像文件并设置图像控件上的属性以指向正确的图像.然后,执行任何表明比尔刚刚进入设施的日志更新。
-- 根据评论更新--
Jenna,我不知道原始记录是如何添加到您的表中的,听起来您是接到这个项目的。 VFP 中的列类型是“常规”字段。有点像也可以保存二进制数据的备忘录字段,通用数据类型更多地用于对象链接和嵌入 (OLE) 内容。似乎当用户存储这些值时,他们通过类似的方式添加为链接或嵌入的内容
从 SomePath\SomeFileName.bmp 中附加一般 YourPictureColumn
检查 VFP 6 下的“APPEND GENERAL”语法。您还可以通过包含实际图像来说明如何通过链接到实际文件与嵌入,因此如果删除了原始来源,您仍然可以将其保存在文件中。
至于双击该栏看到的“相框”,是因为VFP不知道如何正确解释图像,比如“MS.Paint”类对象,或者“Picture”,管他呢。我从来没有真正喜欢过通用字段,而是有一个备忘录字段,其中只有我保留的图像的完整路径/文件名的名称,并且有一个单独的文件夹来粘贴所有图像文件。然后,当我需要显示该特定图像时,我会将 VFP 表单上的图像对象的属性更改为该位置。
现在,如果这是您可能喜欢的路线,我不确定是否要提取这些图像文件,但可以进一步研究。
至于测试图像采样的概念,在 VFP 中,为示例表单创建一个新文件夹。
在文件夹中复制几张图片作为示例。
创建一个包含 2 列的简单表...
创建表 MyPicSample ;
(人名 c(10),;
图片来源 m)
添加与您复制到测试文件夹中的图像一样多的记录。对于每一个,将图像的文件名(完整路径)放入“ImgSource”备注字段,以及“PersonName”的示例描述。
接下来,创建一个表单,打开数据环境,添加刚刚创建的“MyPicSample”表。
将此表从数据环境拖到表单中,它将在表单上创建一个网格。调整它的大小,您只需要少量空间即可显示 PersonName 的一列。关闭数据环境。
向表单添加一个“图像”控件。它应该默认对象名称为“Image1”
双击您的网格以调出其代码 sn-p 窗口,然后双击“AfterRowColChange”事件...将以下内容粘贴到它上面..
LPARAMETERS nColIndex
Thisform.Image1.Picture = MyPicSample.ImgSource
保存并运行表单。当您向上/向下滚动网格时,您应该会看到图像更改为相应的 BMP/JPG 文件。
我认为这是您想要的概念,但不是显示数据表网格,而是通过扫描卡执行此操作,该卡获取记录,有图像,然后呈现该图像(现在在 General数据列类型)。
同样,不确定您是如何通过嵌入或链接获得图像的,但有了这个,我们可能会更接近您所需的最终结果。