메인 메뉴가 있는 폼에서 메뉴를 이용하여 다름 폼을 열려고 하는 데
이미 그 폼이 열려 있으면 새로 여는 것이 아니라 기존의 폼을 보여주려고
다음과 같은 방법으로 코딩을 했는 데 찾고자 하는 폼이 없는 데도
FindWindow에서 0가 아닌 값을 리턴를 하는 군요.
어떻게 해야 하는 지 어디서 잘못되었는지 도움을 부탁드립니다.
/////-------------------------------------------
procedure TForm1.N311Click(Sender: TObject);
var
intHandleOfWin : integer;
begin
intHandleOfWin := FindWindow('TForm4', nil);
if intHandleOfWin = 0 then
begin
Form4 := TForm4.Create( Self );
Form4.Show;
end
else
begin
SetActiveWindow(intHandleOfWin);
end;
end;
그랬다면 프로젝트 옵션에서 available form으로 옮겨 주시고요.
또는 Form4와 그유닛을 열어논 상태에서 컴파일한 후에 그 실행을
가지고 체크하셨다면 상관이 없구요.
이 것도 저것도 아니라면 findwindow의 두번 째 인자값을 nil대신에
Form의 캡션을 주시고요.(클래스와 캡션까지 동시에 만족해야 값이
0 이 안되니까. 같이 존재할 확률이 극히 희박하겠죠)
참고하셔요.