V victor Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-10 #1 我在form上显示了一个bmp图,用 image控件,但想在程序中知道 bmp图的文件名,应该怎么办? 谢谢!
曹 曹晓钢 Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-10 #2 咦,我理解不了你的意思. image控件会把整个BMP读到内存,存在*.DFM中. 生成EXE后,BMP是作为资源放到EXE里面去的,所以不会有BMP对应的文件名. 如果你不是这个意思,请仔细描述一下问题.
咦,我理解不了你的意思. image控件会把整个BMP读到内存,存在*.DFM中. 生成EXE后,BMP是作为资源放到EXE里面去的,所以不会有BMP对应的文件名. 如果你不是这个意思,请仔细描述一下问题.
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-10 #3 我想他的意思是想获得自己打开的一个bmp的文件名。 但答案是一样的,bmp调入内存后,就不存在文件名 这个概念了。 如果想获得,只能在每次打开时用内存变量记录下来, 如果想记录多个,当然用数组。
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-10 #4 今天天气好,告诉你 如果在TIMAGE中加入了图形,它就被保存在EXE文件中,你可以用以下方法处理: 双吉TIMAGE用SAVE把图象存入一个新的文件,要什么名字?随便!
V victor Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-11 #5 No, 我说的是在我的程序运行中。 我想可能是没办法了, 不管怎么说,谢谢大家!
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-11 #6 我说的就是你的程序运行中啊! 不会没办法的,什么问题,说来听听。
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-11 #7 在程序中根本用不到图形文件名,如果你删除了图形文件,你的程序也可以显示正确的图形!因为它已经保存了!如果需要用SAVETOFILE方法可以创建一个或者多个图形文件!如果用LOADFROMFILE加入文件,那么也是一样,图形已经在内存中了,在加入的时候保存在一个变量中!当然如果在运行期间有人删除了图形文件,这个变量就没有用处了,用SAVETOFILE创建一个(如果有必要)
在程序中根本用不到图形文件名,如果你删除了图形文件,你的程序也可以显示正确的图形!因为它已经保存了!如果需要用SAVETOFILE方法可以创建一个或者多个图形文件!如果用LOADFROMFILE加入文件,那么也是一样,图形已经在内存中了,在加入的时候保存在一个变量中!当然如果在运行期间有人删除了图形文件,这个变量就没有用处了,用SAVETOFILE创建一个(如果有必要)
V victor Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-11 #8 我想作的程序是这样的: 假设某个图形库中有许多开关的图, 但都是成对出现:“开”、“关”状态的图形, 这些成对的图形的文件名是这样命名的: XXXX_on.bmp, XXXX_off.bmp (XXXX表示容易字母) 假设我在界面设计时选择了某个开关的图形(文件), 我想在程序运行后知道与这个开关对应的另外一个图形的 文件名(开,或关的状态图形) 有办法吗?
我想作的程序是这样的: 假设某个图形库中有许多开关的图, 但都是成对出现:“开”、“关”状态的图形, 这些成对的图形的文件名是这样命名的: XXXX_on.bmp, XXXX_off.bmp (XXXX表示容易字母) 假设我在界面设计时选择了某个开关的图形(文件), 我想在程序运行后知道与这个开关对应的另外一个图形的 文件名(开,或关的状态图形) 有办法吗?
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-11 #9 明白你的意思了,这与image控件毫无关系, 纯属程序设技巧问题,恐怕会有几十个“答案”也说不定。 比如: 如果你的图形只控制一种开关,就干脆把这个Image的Name 定为XXXX,这样不就全解决了吗? 文件名只需要拼接一下就行了 XXXX -> XXXX_on.bmp和XXXX_off.bmp。 这并不是个取巧的办法,牵涉一个逻辑问题, 即:如果你的Image控件不能唯一决定你所需的 文件名的话,是没有办法通过临时读取文件 来显示图形的。那就只有设计时全部装入代码, 运行时通过赋值或显示不同Image的办法解决了。
明白你的意思了,这与image控件毫无关系, 纯属程序设技巧问题,恐怕会有几十个“答案”也说不定。 比如: 如果你的图形只控制一种开关,就干脆把这个Image的Name 定为XXXX,这样不就全解决了吗? 文件名只需要拼接一下就行了 XXXX -> XXXX_on.bmp和XXXX_off.bmp。 这并不是个取巧的办法,牵涉一个逻辑问题, 即:如果你的Image控件不能唯一决定你所需的 文件名的话,是没有办法通过临时读取文件 来显示图形的。那就只有设计时全部装入代码, 运行时通过赋值或显示不同Image的办法解决了。
曹 曹晓钢 Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-12 #10 如果你不是想要处理BMP图形,而是使用他们的话, 一个可能的解决方法是使用两个ImageList,先把BMP全读进来, 自然好用了. 如dwwang所说,这本是个简单问题,这只是一种可能的方法.
G genius Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-12 #11 你可以尝试用LoadFromFile()函数,不知能否满足要求.
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1998-10-15 #12 还没有结案!! dwwang说的对!纯属程序设计技巧!要么写一个类, 继承TIMAGE增加图形文件名PICNAME属性(STRING) 每次读文件时把文件名保存到这个属性中; 如果不希望写这个类,那么增加变量,存储图形文件; 如果只是图形成队出现,放两个TIMAGE设置其VISABLE 属性也是个不错的方法,反正和TIMAGE没有关系! 但是如果只用2个图形用TLISTIMAGE就未必核算了!
还没有结案!! dwwang说的对!纯属程序设计技巧!要么写一个类, 继承TIMAGE增加图形文件名PICNAME属性(STRING) 每次读文件时把文件名保存到这个属性中; 如果不希望写这个类,那么增加变量,存储图形文件; 如果只是图形成队出现,放两个TIMAGE设置其VISABLE 属性也是个不错的方法,反正和TIMAGE没有关系! 但是如果只用2个图形用TLISTIMAGE就未必核算了!