Q&A

  • Screen.OnActiveFormChange이벤트 에러...
Screen.OnActiveFormChange 이벤트를 아래와 같이 처리했습니다.



procedure TMainForm.FormCreate(Sender: TObject);

begin

Screen.OnActiveFormChange:= UpdateMenuItems;

end;



procedure TMainForm.UpdateMenuItems(Sender: TObject);

var

MenuEnable:Boolean;

begin

MenuEnable:= (MDIChildCount>0) and (ActiveMDIChild<>nil);

EditItem.Enabled := MenuEnable; //편집메뉴 활성화

CloseChildItem.Enabled := MenuEnable; //닫기메뉴 활성화

end;



그런데 자꾸 AccessViolation이 나는군요. 어디가 잘못된 것인지 잘 모르겠군요.



1  COMMENTS
  • Profile
    parkisu 2001.03.16 23:09
    Parkisu wrote:

    > Screen.OnActiveFormChange 이벤트를 아래와 같이 처리했습니다.

    >

    > procedure TMainForm.FormCreate(Sender: TObject);

    > begin

    > Screen.OnActiveFormChange:= UpdateMenuItems;

    > end;

    >

    > procedure TMainForm.UpdateMenuItems(Sender: TObject);

    > var

    > MenuEnable:Boolean;

    > begin

    > MenuEnable:= (MDIChildCount>0) and (ActiveMDIChild<>nil);

    > EditItem.Enabled := MenuEnable; //편집메뉴 활성화

    > CloseChildItem.Enabled := MenuEnable; //닫기메뉴 활성화

    > end;

    >

    > 그런데 자꾸 AccessViolation이 나는군요. 어디가 잘못된 것인지 잘 모르겠군요.

    >



    폼의 Destroy 이벤트에 Screen.OnActiveFormChange:= nil을 추가함으로써 해결했습니다.