안녕하세요.
ActiveX를 이용하여 PopupMenu를 구현하여 사용중에 있는데요,
처음 웹페이지에 접근하여 ActiveX를 사용하면 PopupMenu가 정상적으로 작동이 잘 됩니다.
근데 웹에서 다른 페이지를 다녀온 후 ActiveX 페이지에 접근하면
PopupMenu 수행시 Access Violation 에러를 발생시킵니다.
페이지를 닫고 다시 로그인하여 접근하면 또 정상적으로 작동을 하구요.
ActiveForm에서 PopupMenu를 실행하면 정상적인데,
ActiveForm에서 팝업으로 띄운 Form에서 PopupMenu 를 수행하면
Access Violation 에러가 뜨더라구요.
PopupMenu 는 속성 창에서 설정했습니다.
또한 소스 상에서 ActiveX 팝업창을 띄웠을 때
gridData.PopupMenu := PopupMenu1;
팝업창을 닫았을 때
gridData.PopupMenu := nil;
으로 설정해 보았는데, Access Violation 에러는 계속 발생합니다.
어떻게 해결해야 하나요?
뭐가 문제인지 모르겠습니다. 고수님들 도와주세요.
ChildForm을 닫을 때 메모리 해제를 안해서 그런 문제가 발생했던 것 같습니다.
PopupMenu가 존재하는 ChildForm에 OnClose 이벤트를 추가하였더니
정상적으로 PopupMenu 기능이 동작하게 됐습니다.
일단 문제해결은 했습니다만 아직도 위와 같은 에러가 어떻게 해서 발생이 된건지
정확인 원인을 모르겠습니다.
고수님들 조언 좀 부탁드립니다.
<!--CodeS-->
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
Action := caFree;
frmMain := nil;
finally
end;
end;
<!--CodeE-->