Q&A

  • close 이벤트가 발생하지 않네염....
close 이벤트가 먹질 않네염....
그냥 지나가 버려염...
ㅠㅠ
왜그런지 아시는분......
폼이 보여질때(FormShow 이벤트)는 데이타를 조회하고 조회결과가 아무것두 없으면 종료하는건데염.....
다른폼에서는 FormActivate 할때 close 이벤트 잘 되거든여....
근데 여기만 안되네염...
답변 부탁드립니다.
ㅠㅠ


procedure TfrmSearch.FormActivate(Sender: TObject);
begin
  if cdsSearch.IsEmpty then
  begin
    ShowMessage('close');
    Close;
  end;
end;
4  COMMENTS
  • Profile
    KDDG_ZZOM 2002.08.09 20:11
    1.Application.Terminate;

    2.PostMessage(Handle, WM_CLOSE, 0, 0);

    이걸로 한번 해보세요...
    전 close도 되고 1,2번도 다되는데...

    즐프하세요...

  • Profile
    곰다방~미스김 2002.08.09 20:36
    여러개의 폼중에서 어느폼에서 이녀석을 호출할지 모르는 상황에서 프로그램을 짜고 있습니다....
    근데....close가 안되서염...
    showmessage의 메시지도 보이는데 close는 그냥 지나가버리구...
    알려주신대로 1번으로 했더니 프로그램 전체가 종료되구....
    2번으로 하니까 되네염...
    근데....왜 close가 안먹을까염?
    아직두 궁금하네염....
    그리구 답변감사하구염.....
    즐프하세염....


  • Profile
    KDDG_ZZOM 2002.08.09 20:50
    해결되었다니 추카여...
    안되는건....^^ 저도 잘몰라요... 저도 허접하다보니...
    전그냥 메인폼하나에서만 테스트를 해서...
    글구 MDI방식은 사용한적이 별루 없어서...
    고수님들이 답변해주면 좋은데...
    즐프하세요...

  • Profile
    고지범 2002.08.09 22:48
    사용하셨다는 코드를 보니... 폼을 새로 생성해서 보이는 방식이 아니라 auto-create form 형태로 사용하고 계시는 군요...
    OnFormActivate 상에서 Close 사용하신다구 하셨는 데... 디버그 걸고 함 들어가 보세요... OnClose에서 무언가 작업하지 않으셨다면 exception을 만나게 됩니다. CloseAction이 보통 caHide 로 잡히니까, OnFormActivate 상태에서는 상태가 showing인데 Hide 하려고 들어가면 exception을 내보냅니다. 그럼 아래 코드가 제대로 돌았다고 하니...
    1. OnCloaseQuery 에서 false를 넣어 주거나,
    2. OnClose 에서 CloseAction 을 caHide/caMinimize 이외에 딴 걸루 설정하신 듯...

    1번의 경우 Close 에서 하는 일 이 없구요...
    2번의 경우... 폼을 닫으려면 caFree를 사용해야 하는 데... 그럼 나중에 실행시키는 것이 장난이 아니져...지금 처럼 auto-create form을 사용하시면 caFree 사용시에 나중에 호출이 안되니깐요...
    MDI/Multi SDI 모두 동일할 듯 합니다...

    폼을 동적으로 생성해서 CloseAction을 caFree로 지정해두면 걍.. 잘 돕니다.

    그럼 오늘도 즐입니다..