EAccessViolation异常求救!!!

surfboard 2000-12-15 01:49:00
一个程序执行时,创建一个checkform,但当该checkform被free,回到主窗口时,总出现异常:"
..raise exception class EAccessViolation with message 'Access violation
at address 0041A589 in module 'Temp.exe'. Read of address 007CD118'."
这个form的定义为:
TCheckForm = class(TForm)
...........
private
{ Private declarations }
RegionDataSize: array [0..12] of Integer;
Region: array [0..12] of HRGN;
RegionData: array [0..12] of PRgnData;
public
{ Public declarations }
end;

创建使用该form的语句为:
CheckForm := TCheckForm.Create(Application);

with CheckForm do
try
try
for Iloop := 0 to 12 do
RegionData[Iloop] := nil;

TempStream := TMemoryStream.Create;
try
try
for Iloop := 0 to 12 do
begin
TempStream.CopyFrom(KKInfo[Iloop].BGMskData, 0);

RegionDataSize[Iloop] := TempStream.Size;

GetMem(RegionData[Iloop], RegionDataSize[Iloop]);
TempStream.Position := 0;
TempStream.Read(RegionData[Iloop]^, RegionDataSize[Iloop]);

TempStream.Clear;
end;

finally
TempStream.Free;
end;
except
MessageBox(Handle, Pchar('Get Region Data Wrong!'),
Pchar('KK'), mb_IconError);
exit;
end;

for Iloop := 0 to 12 do
begin
if (RegionDataSize[Iloop] > 0) and (RegionData[Iloop] <> nil) then
Region[Iloop] := ExtCreateRegion(nil, RegionDataSize[Iloop], RegionData[Iloop]^)
else
Region[Iloop] := 0;
end;
......

form的destroy为:
procedure TCheckForm.FormDestroy(Sender: TObject);
var
Iloop: Byte;
begin
//释放内存空间,删除区域对象
for Iloop := 0 to 12 do
begin
ReallocMem(RegionData[Iloop], 0);

if Region[Iloop] <> 0 then DeleteObject(Region[Iloop]);
end;
end;

请问各位大虾,到底什么地方导致了这个异常??
谢谢!!!


...全文
655 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayongm 2000-12-16
  • 打赏
  • 举报
回复
昨天,我刚刚解决了一个完全一样的问题,你的内存访问肯定有问题,问题在于你的Form上,注意过程的独立性,创建和释放的独立性,就OK!有空再聊
surfboard 2000-12-15
  • 打赏
  • 举报
回复
谢谢两位大虾的回复!但我仔细的检查了程序,不存在这种情况。
烦劳各位大虾,再帮我分析分析!!非常感谢!
surfboard 2000-12-15
  • 打赏
  • 举报
回复
谢谢两位大虾的回复!但我仔细的检查了程序,不存在这种情况。
烦劳各位大虾,再帮我分析分析!!非常感谢!
ePing 2000-12-15
  • 打赏
  • 举报
回复
同意楼上那位的看法

三少 :o)
supershan 2000-12-15
  • 打赏
  • 举报
回复
不用看都知哪出个问题,一个Form已被Free,但另一个Form又引用它的变量或其他

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧