메인폼에 메뉴바가 있습니다.
메뉴바에서 원하는 아이템을 누르면
해당자식폼이 나오게 되어 있습니다.
폼형식은 둘다 normal폼입니다(절대 mdi 아닙니다. mdi 같았으면 해결 했쥐..)
메인폼은 물론 auto폼임다.
자식폼은 물론 available폼임다.
메뉴아이템에 tform1.create(application)
이라 적어 놓았습니다.(일단은 잘 몰라서..)
문제점은 예상 되듯이.
자식폼을 띠우고 또 똑같은 자식폼을 띠웁니다.
물론 같은 폼이 두개 뜹니다.
그러나 전 이게 싫습니다.(무지...)
같은 메뉴 아이템을 눌렀을경우...
같은 폼을 두번씩이나 띠우지 말고.
반응이 없던가..
아님 먼저 있던 폼을 죽이고 새폼을 띠우든가
하고 싶습니다.(쌍둥이는 ㅅ ㅣ ㄹ ㅓ ~~)
유일한 폼이고 싶습니다.
방법을 아시는 분은 갈켜 주세요.
간단히 리플 달지 마시고요..
아주 구체적으로 상세히 적어 주세요.
그럼 복 받을 겁니다.
그럼 누구나님 부탁 드립니다.
간단합니다. 간단한 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로 폼을 열면 여러개 폼을 동시에 열수 없는 것은아시죠