Q&A

  • MDI폼에서 또다른 폼을 생성시킬때...
안녕하세요..

mdi폼에서요... 창을 띄우고, 또 다른 창을 띄울 수 있지 않습니까...



만약 또 다른 창을 띄울때 기존의 창을 close 하려면 어떻게 해야 할까요...



마우스 포커스가 기존의 창 밖으로 나갈때 close시키면 될것 같은 데... 마우스 포커스 쪽을 제가 잘 모르겠습니다.

2  COMMENTS
  • Profile
    최석기 2000.06.24 21:42
    blueofsky wrote:

    > 안녕하세요..

    > mdi폼에서요... 창을 띄우고, 또 다른 창을 띄울 수 있지 않습니까...

    >

    > 만약 또 다른 창을 띄울때 기존의 창을 close 하려면 어떻게 해야 할까요...

    >

    > 마우스 포커스가 기존의 창 밖으로 나갈때 close시키면 될것 같은 데... 마우스 포커스 쪽을 제가 잘 모르겠습니다.



    포커스랑은 상관 없구요.



    까바귀님이 말씀하신 것을 이용해서 하시면 됩니다.



    예전에 델파이 예제로 봤던거 같은데..



    procedure TfrmMain.FormCreate(Sender: TObject);

    begin

    // 화면에서 폼의 활성화가 변할 때 발생하는 이벤트를 버턴 활성화 이벤트에 연결

    Screen.OnActiveFormChange := UpdateMenuItems;

    end;



    procedure TfrmMain.UpdateMenuItems(Sender: TObject);

    var

    i: integer;

    begin

    for i := 0 to MDIChildCount - 1 do begin

    if MDIChildren[i] <> ActiveMDIChild then begin

    MDIChildren[i].Close;

    end;

    end;

    end;



  • Profile
    까마귀 2000.06.24 20:36
    blueofsky wrote:

    > 안녕하세요..

    > mdi폼에서요... 창을 띄우고, 또 다른 창을 띄울 수 있지 않습니까...

    >

    > 만약 또 다른 창을 띄울때 기존의 창을 close 하려면 어떻게 해야 할까요...

    >

    > 마우스 포커스가 기존의 창 밖으로 나갈때 close시키면 될것 같은 데... 마우스 포커스 쪽을 제가 잘 모르겠습니다.



    안녕하세요. 까마귀입니다.

    다들 즐거운 주말 보내세요.



    마우스 포커스를 이용을 않해도 될것 같은데요.

    사실 마우스쪽은 제가 잘 몰라서리.... 하하.. 까마귀의 한계입니다.

    기존의 폼을 연 상태에서 다시 새로운 폼을 열면 MDIChildCount가 하나 올라가겠죠?

    그러면 그 뒤에 먼저 열린 폼을 닫는 겁니다. 이런 식으로...



    MDIChildren[MDIChildCount-1].Close;



    더 좋은 방법이 있으시면 여기에 또 답변을 부탁드립니다. 저도 좀 배우게요...







    위대한 단군혼이 살아있는 나라.... 대한민국.