就地散分.晚上结贴,要分的来[:D] ( 积分: 100 )

  • 主题发起人 主题发起人 loveknot
  • 开始时间 开始时间
L

loveknot

Unregistered / Unconfirmed
GUEST, unregistred user!
本人有一个数据库,里面存放着图像的位置信息和需要产生的图像名称:
posX,posY,ImgName
532 256 58949
240 298 59333
........

我的产生动态图像的函数是:
Function CreatImg(X,Y:integer;ImgName:string):Timage;
var
StaImg:TImage;
begin
staImg:=TImage.Create(nil);
staImg.Width:=10;
staImg.Height:=10;
staImg.Name:=Imgname;
StaImg.Top:=x;
StaImg.Left:=y;
staImg.Parent:=Panel1;
StaImg.Picture.LoadFromFile('d:/yellow.bmp');
result:=StaImg;
end;

现在的问题是:
1 如何给产生的某些图像赋值,比如给产生的图像原来是yellow.bmp,在一定的条件下(alarm=false)使它变成green.bmp

2 如何将这些产生的图像free掉,图像的名称并不连续,只是从数据库中读取出来的.
请大大们伸出援手,不胜感激
 
本人有一个数据库,里面存放着图像的位置信息和需要产生的图像名称:
posX,posY,ImgName
532 256 58949
240 298 59333
........

我的产生动态图像的函数是:
Function CreatImg(X,Y:integer;ImgName:string):Timage;
var
StaImg:TImage;
begin
staImg:=TImage.Create(nil);
staImg.Width:=10;
staImg.Height:=10;
staImg.Name:=Imgname;
StaImg.Top:=x;
StaImg.Left:=y;
staImg.Parent:=Panel1;
StaImg.Picture.LoadFromFile('d:/yellow.bmp');
result:=StaImg;
end;

现在的问题是:
1 如何给产生的某些图像赋值,比如给产生的图像原来是yellow.bmp,在一定的条件下(alarm=false)使它变成green.bmp

2 如何将这些产生的图像free掉,图像的名称并不连续,只是从数据库中读取出来的.
请大大们伸出援手,不胜感激
 
为图像建立一个管理组不就OK了。
 
管理组如何建?
希望贴些代码给我!
 
1.先在你创建的地方根据名(Imgname)找到,然后再给它赋值就可以了,
2.使用FOR依依次Free,注意是downto
for icount:=Panel1.ControlCount-1 downto 0 do
begin
if (Panel1.Controls[icount] is TImage) and (Panel1.Controls[icount].Name = Imgname) then
Panel1.Controls[icount].Free;
end;
 
难道没有其他的解决办法吗?
如果有代码的话,分数不够可以再加,就当辛苦费.[:)]

自己给自己顶一下!
 
to zhilon
{先在你创建的地方根据名(Imgname)找到,然后再给它赋值就可以了}
我的程序是运行时根据实时送过来的状态数据来显示yellow.bmp或green.bmp.这就导致只能在CreatImg函数外面修改创建的Img属性.因为动态生成的IMG图像在程序中并没有声明,所以直接调用是不可能的.有解决的办法吗?

还有,请问如何使创建的图片闪烁?
 
问题解决,就地散分.晚上结贴,要分的来[:D]
 
那你怎么实现的也给大家分享以下嘛!!
 
第二天早上来的可不可以得分啊? :P
 
来自:loveknot, 时间:2005-5-17 14:32:33, ID:3076161
问题解决,就地散分.晚上结贴,要分的来

昨晚没来结帖?[:D]
 
呵呵,我来,给我分呀。。。
 
建了一个img数组,遍历数组判断img的名称.
谢谢各位捧场.
 
后退
顶部