如何获得form上一个image控件中的picture的文件名?(50分)

  • 主题发起人 主题发起人 victor
  • 开始时间 开始时间
V

victor

Unregistered / Unconfirmed
GUEST, unregistred user!
我在form上显示了一个bmp图,用
image控件,但想在程序中知道
bmp图的文件名,应该怎么办?


谢谢!
 
咦,我理解不了你的意思.

image控件会把整个BMP读到内存,存在*.DFM中.
生成EXE后,BMP是作为资源放到EXE里面去的,所以不会有BMP对应的文件名.

如果你不是这个意思,请仔细描述一下问题.
 
我想他的意思是想获得自己打开的一个bmp的文件名。
但答案是一样的,bmp调入内存后,就不存在文件名
这个概念了。

如果想获得,只能在每次打开时用内存变量记录下来,
如果想记录多个,当然用数组。
 
今天天气好,告诉你
如果在TIMAGE中加入了图形,它就被保存在EXE文件中,你可以用以下方法处理:
双吉TIMAGE用SAVE把图象存入一个新的文件,要什么名字?随便!
 
No, 我说的是在我的程序运行中。

我想可能是没办法了,

不管怎么说,谢谢大家!
 
我说的就是你的程序运行中啊!

不会没办法的,什么问题,说来听听。
 
在程序中根本用不到图形文件名,如果你删除了图形文件,你的程序也可以显示正确的图形!因为它已经保存了!如果需要用SAVETOFILE方法可以创建一个或者多个图形文件!如果用LOADFROMFILE加入文件,那么也是一样,图形已经在内存中了,在加入的时候保存在一个变量中!当然如果在运行期间有人删除了图形文件,这个变量就没有用处了,用SAVETOFILE创建一个(如果有必要)
 
我想作的程序是这样的:
假设某个图形库中有许多开关的图,
但都是成对出现:“开”、“关”状态的图形,
这些成对的图形的文件名是这样命名的:
XXXX_on.bmp, XXXX_off.bmp
(XXXX表示容易字母)
假设我在界面设计时选择了某个开关的图形(文件),
我想在程序运行后知道与这个开关对应的另外一个图形的
文件名(开,或关的状态图形)

有办法吗?
 
明白你的意思了,这与image控件毫无关系,
纯属程序设技巧问题,恐怕会有几十个“答案”也说不定。

比如:

如果你的图形只控制一种开关,就干脆把这个Image的Name
定为XXXX,这样不就全解决了吗?
文件名只需要拼接一下就行了 XXXX -> XXXX_on.bmp和XXXX_off.bmp。

这并不是个取巧的办法,牵涉一个逻辑问题,
即:如果你的Image控件不能唯一决定你所需的
文件名的话,是没有办法通过临时读取文件
来显示图形的。那就只有设计时全部装入代码,
运行时通过赋值或显示不同Image的办法解决了。
 
如果你不是想要处理BMP图形,而是使用他们的话,
一个可能的解决方法是使用两个ImageList,先把BMP全读进来,
自然好用了.

如dwwang所说,这本是个简单问题,这只是一种可能的方法.
 
你可以尝试用LoadFromFile()函数,不知能否满足要求.
 
还没有结案!!

dwwang说的对!纯属程序设计技巧!要么写一个类,
继承TIMAGE增加图形文件名PICNAME属性(STRING)
每次读文件时把文件名保存到这个属性中;
如果不希望写这个类,那么增加变量,存储图形文件;
如果只是图形成队出现,放两个TIMAGE设置其VISABLE
属性也是个不错的方法,反正和TIMAGE没有关系!
但是如果只用2个图形用TLISTIMAGE就未必核算了!
 
后退
顶部