Q&A

  • PopupMenu Access Violation 에러
안녕하세요.

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 에러는 계속 발생합니다.

어떻게 해결해야 하나요?
뭐가 문제인지 모르겠습니다. 고수님들 도와주세요.
1  COMMENTS
  • Profile
    한동주 2009.06.27 01:04
    여러가지 방법으로 시도해보다가 드디어 해결했습니다.

    ChildForm을 닫을 때 메모리 해제를 안해서 그런 문제가 발생했던 것 같습니다.
    PopupMenu가 존재하는 ChildForm에 OnClose 이벤트를 추가하였더니
    정상적으로 PopupMenu 기능이 동작하게 됐습니다.

    일단 문제해결은 했습니다만 아직도 위와 같은 에러가 어떻게 해서 발생이 된건지
    정확인 원인을 모르겠습니다.

    고수님들 조언 좀 부탁드립니다.

    <!--CodeS-->
    procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    try
    Action := caFree;

    frmMain := nil;
    finally

    end;
    end;
    <!--CodeE-->