Q
qlwy
Unregistered / Unconfirmed
GUEST, unregistred user!
做一个关于视频的项目。
界面期望做成地图的样式,也就是界面背景是一个大的Image(BMP),然后将地图上各个位置
的摄像机做成图标一样的小图(BMP),各小图信息保存在数据库中,FormCreate时载入小图到
大地图上,并且小图可以增加、删除和修改。
问题:小图载入时,每条信息我把它保存在list里,
img:=timage.Create(self);
img.Parent:=panel1;
img.Picture.LoadFromFile (CurrentFile);
x:= .....; y:=......;(从数据库中取值)
img.SetBounds(x,y,img.Picture.Bitmap.Width,img.Picture.Bitmap.Height);
list1.add(@img);
然而,在删除地图上某个小图和释放内存时,都会出现
raised exception class eAccessViolation with message 'Access violation at
address 00E38DDC,Read of address FFFFFFFF' 这样的错误。
程序代码如下:
删除某个小图: img:=list1.items; img.Free;
释放所有的指针:(第一个循环可以,第二个循环就出错,而且发现虽然list1.count的
值是对的,但是所有元素的地址却都是一样的)
while list1.count>0 do
begin
Img:=PImage(list1.Items[0]);
list1.Delete(0);
img.free;
end;
list1.clear;
list1.free;
另外也请图像高手指点,当鼠标点中地图上的某个小图时,怎样给它一个焦点,让操作者
明白它已经点中了这个小图标。
界面期望做成地图的样式,也就是界面背景是一个大的Image(BMP),然后将地图上各个位置
的摄像机做成图标一样的小图(BMP),各小图信息保存在数据库中,FormCreate时载入小图到
大地图上,并且小图可以增加、删除和修改。
问题:小图载入时,每条信息我把它保存在list里,
img:=timage.Create(self);
img.Parent:=panel1;
img.Picture.LoadFromFile (CurrentFile);
x:= .....; y:=......;(从数据库中取值)
img.SetBounds(x,y,img.Picture.Bitmap.Width,img.Picture.Bitmap.Height);
list1.add(@img);
然而,在删除地图上某个小图和释放内存时,都会出现
raised exception class eAccessViolation with message 'Access violation at
address 00E38DDC,Read of address FFFFFFFF' 这样的错误。
程序代码如下:
删除某个小图: img:=list1.items; img.Free;
释放所有的指针:(第一个循环可以,第二个循环就出错,而且发现虽然list1.count的
值是对的,但是所有元素的地址却都是一样的)
while list1.count>0 do
begin
Img:=PImage(list1.Items[0]);
list1.Delete(0);
img.free;
end;
list1.clear;
list1.free;
另外也请图像高手指点,当鼠标点中地图上的某个小图时,怎样给它一个焦点,让操作者
明白它已经点中了这个小图标。