Q&A

  • [누구나 답할수 있는 질문]메뉴바에서 띠운폼 반복해서 안나오기
메인폼에 메뉴바가 있습니다.

메뉴바에서 원하는 아이템을 누르면

해당자식폼이 나오게 되어 있습니다.

폼형식은 둘다 normal폼입니다(절대 mdi 아닙니다. mdi 같았으면 해결 했쥐..)

메인폼은 물론 auto폼임다.

자식폼은 물론 available폼임다.

메뉴아이템에 tform1.create(application)

이라 적어 놓았습니다.(일단은 잘 몰라서..)



문제점은 예상 되듯이.

자식폼을 띠우고 또 똑같은 자식폼을 띠웁니다.

물론 같은 폼이 두개 뜹니다.

그러나 전 이게 싫습니다.(무지...)

같은 메뉴 아이템을 눌렀을경우...

같은 폼을 두번씩이나 띠우지 말고.

반응이 없던가..

아님 먼저 있던 폼을 죽이고 새폼을 띠우든가

하고 싶습니다.(쌍둥이는 ㅅ ㅣ ㄹ ㅓ ~~)

유일한 폼이고 싶습니다.





방법을 아시는 분은 갈켜 주세요.



간단히 리플 달지 마시고요..

아주 구체적으로 상세히 적어 주세요.

그럼 복 받을 겁니다.



그럼 누구나님 부탁 드립니다.







3  COMMENTS
  • Profile
    plan0611 2001.08.22 05:37
    mdi가 아닌 sdi로 개발을 하시는 듯한데요,

    간단합니다. 간단한 function를 만들어 사용하세요



    //function하나를 선언하시고

    function SdiWindow(FrmName: String): Boolean;

    var

    I: Integer;

    begin

    for I := 0 to Screen.FormCount-1 do

    begin

    if UpperCase(Screen.Forms[I].Name) = UpperCase(FrmName) then

    begin

    Screen.Forms[I].Show;

    Result := False;

    Exit;

    end;

    end;

    Result := True;

    end;



    //버튼클릭이벤트에

    procedure Tform1.BitBtn1Click(Sender: TObject);

    begin

    if SdiWindow('Form2') then

    begin

    Form2 := TForm2.Create(Application);

    Form2.Show;

    end;

    end;



    ==>이와 같이 하면 되시구요, showmodal로 폼을 열면 여러개 폼을 동시에 열수 없는 것은아시죠

  • Profile
    chobo of chobo 2001.08.22 18:53
    plan0611 wrote:

    > mdi가 아닌 sdi로 개발을 하시는 듯한데요,

    > 간단합니다. 간단한 function를 만들어 사용하세요

    >

    > //function하나를 선언하시고

    > function SdiWindow(FrmName: String): Boolean;

    > var

    > I: Integer;

    > begin

    > for I := 0 to Screen.FormCount-1 do

    > begin

    > if UpperCase(Screen.Forms[I].Name) = UpperCase(FrmName) then

    > begin

    > Screen.Forms[I].Show;

    > Result := False;

    > Exit;

    > end;

    > end;

    > Result := True;

    > end;

    >

    > //버튼클릭이벤트에

    > procedure Tform1.BitBtn1Click(Sender: TObject);

    > begin

    > if SdiWindow('Form2') then

    > begin

    > Form2 := TForm2.Create(Application);

    > Form2.Show;

    > end;

    > end;

    >

    > ==>이와 같이 하면 되시구요, showmodal로 폼을 열면 여러개 폼을 동시에 열수 없는 것은아시죠

  • Profile
    임상욱 2001.08.22 04:26
    원하시는 답변이 이게 아닌것 같은데....

    ShowModal 로 해보셨나요?...

    Form.Show;

    Form.ShowModal;

    이 있는데...

    그럼.





    procedure TStartFrm.N97Click(Sender: TObject);

    var

    SaleFrm : TSaleFrm;

    begin

    SaleFrm := TSaleFrm.Create(Self);

    SaleFrm.ShowModal;

    SaleFrm.Free;

    end;





    chobo of chobo wrote:

    > 메인폼에 메뉴바가 있습니다.

    > 메뉴바에서 원하는 아이템을 누르면

    > 해당자식폼이 나오게 되어 있습니다.

    > 폼형식은 둘다 normal폼입니다(절대 mdi 아닙니다. mdi 같았으면 해결 했쥐..)

    > 메인폼은 물론 auto폼임다.

    > 자식폼은 물론 available폼임다.

    > 메뉴아이템에 tform1.create(application)

    > 이라 적어 놓았습니다.(일단은 잘 몰라서..)

    >

    > 문제점은 예상 되듯이.

    > 자식폼을 띠우고 또 똑같은 자식폼을 띠웁니다.

    > 물론 같은 폼이 두개 뜹니다.

    > 그러나 전 이게 싫습니다.(무지...)

    > 같은 메뉴 아이템을 눌렀을경우...

    > 같은 폼을 두번씩이나 띠우지 말고.

    > 반응이 없던가..

    > 아님 먼저 있던 폼을 죽이고 새폼을 띠우든가

    > 하고 싶습니다.(쌍둥이는 ㅅ ㅣ ㄹ ㅓ ~~)

    > 유일한 폼이고 싶습니다.

    >

    >

    > 방법을 아시는 분은 갈켜 주세요.

    >

    > 간단히 리플 달지 마시고요..

    > 아주 구체적으로 상세히 적어 주세요.

    > 그럼 복 받을 겁니다.

    >

    > 그럼 누구나님 부탁 드립니다.

    >

    >

    >