기존에는 프로그램 모듈 하나하나를 showmodal형식으로 구현했었습니다...
문제는 한 모듈을 사용할때 다른 모듈을 사용할 수 없다는 점...
그래서 이번에 show형식으로 변환하고자 합니다...
메인화면의 폼스타일을 fsMDIform으로 설정하고 다른 메뉴부분 중 show에 해당하는 메뉴의 폼스타일은 fsMDIChild로 변경했습니다...
그리고 메뉴에서 호출할때 아래처럼 설정하여 호출하였습니다...
if(cust1F = nil ) or not (cust1F.HandleAllocated) then
cust1F := Tcust1F.Create(Self)
else
cust1F.SetFocus;
cust1F.Show;
if cust1F.WindowState = wsMinimized then
cust1F.WindowState := wsNormal;
또, 호출된 서브폼을 닫을때는 아래와 같이 설정하였습니다...
Query1.Close;
cust1F := nil ;
Action := caFree;
메인폼이 닫힐때는 아래와 같이 설정하였습니다...
Action := caFree;
뭐 이러니깐 잘 작동은 되는데 몇가지 의문이 생기더군요...
1. 위 설정형식들이 맞는지.. 혹여 빠진것은 없거나 잘못 설정한 것은 없는지...
2. 다른 서브폼을 호출할때마다 위 호출문을 서브폼 이름만 바꿔서 기술해야 하는데 저것을 서브프로시져를 이용하여 사용할있는 방법은 없는지...
예를 들어
변수(m_formname) := 폼이름(cust1F);
호출프로시져;
이런 형태로 구현할수는 없는가요?? 가능하다면 변수는 어떻게 선언하면 되고 위 문장은 어떻게 기술하면 되는지요...
3. 폼을 여러개 열어놓고 작업하다가 프로그램 종료버튼을 누르게 되면 열렸던 폼과 그안에 데이터베이스 파일들을 자동으로 닫아주고 나가야 할텐데 어떻게 구현을 하면 되는것인지(어떠한 폼이 열렸는지 무슨 데이터(주로 Query를 사용함)가 열려있는지 알수가 없슴!!!)...
아니면 close; 문장만 기술해주면 알아서 모두 닫아주고 빠져나가는지....
4. 또, showmodal에서 show로 바꿀때 특별한 체크사항은 없는지요...
아직도 초보에서 벗어나지 못해서 기초적인것도 모르는게 많습니다...
아시는 분들은 많이많이 가르쳐 주십시요...^^