Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[10766] Re:Re:[질문]showmodal -> show로 변경할때 의문사항...
이승근 [] 1487 읽음    2006-06-22 20:47
감사합니다...^^
1번에 대해서는 전에 어느분이 팁으로 알려주신 사항을 그대로 사용한 사항입니다...
그렇다면 저 문장에서 not (cust1F.HandleAllocated) 문장만 없애면 되는건지요??


박지훈.임프 님이 쓰신 글 :
: 0.
: 한번에 질문은 하나씩 해주세요.
:
: 1.
: 아래의 코드는,
: if(cust1F = nil ) or not (cust1F.HandleAllocated) then
:   cust1F := Tcust1F.Create(Self)
: 실제 실행중에는 웬만해서는 이게 문제가 되는 경우는 없겠지만, 별로 권장할 만한 코드는 아니네요.
: 위 코드에서 폼의 HandleAllocated를 검사하는 것은 말 그대로 폼은 생성되었는데 윈도우 핸들이 생기기 직전의 경우가 있을 수 있어서, 아주 특정한 상황에서는 폼이 두번 생성되고 하나의 포인터를 잃어버리는 경우가 있을 수도 있습니다.
:
: 2.
: 짐작하시겠지만 상속을 이용해야 합니다.
: 그냥 TForm 폼을 상속받은 폼에서는 힘듭니다. 저같은 경우에는 TForm을 상속받은 다른 클래스 타입으로 폼을 생성시키는데, 그 특수 폼 클래스에서 파괴자를 오버라이드하든지 해서 합니다. 하지만 이렇게 하려면 폼 위저드를 직접 만들어야 하므로 폼이 열개 이내의 간단한 애플리케이션을 만들려고 하는 목적으로는 배보다 배꼽이 더 큽니다. 저는 업무용 프로그램 프레임워크를 만들면서 자동화하는 폼 위저드를 만들었습니다.
:
: 3.
: 데이터베이스 연결을 닫아주려면 폼의 OnClose에서 해주면 되겠지요.
:
: 4.
: showmodal에서 show로 바꾼다는 게 무슨 뜻인지 이해가 잘 안되네요.
:
:
: 이승근 님이 쓰신 글 :
: : 어떤 메뉴를 호출하면 form.show;를 이용하여 호출하는 것을 공부해서 실제 프로그램에 접속시켜봤습니다...
: : 그랬더니 아마도 실력이 없어서 그랬었겠지만 입력한 데이터가 없어지기도 하고 이런저런 문제가 발생해 그냥 하나하나 사용하고 정리할 수 있는 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로 바꿀때 특별한 체크사항은 없는지요...
: :
: : 아직도 초보에서 벗어나지 못해서 기초적인것도 모르는게 많습니다...
: : 아시는 분들은 많이많이 가르쳐 주십시요...^^

+ -

관련 글 리스트
10757 [질문]showmodal -> show로 변경할때 의문사항... 이승근 1550 2006/06/21
10765     Re:[질문]showmodal -> show로 변경할때 의문사항... 박지훈.임프 1728 2006/06/22
10766         Re:Re:[질문]showmodal -> show로 변경할때 의문사항... 이승근 1487 2006/06/22
10767             Re:Re:Re:[질문]showmodal -> show로 변경할때 의문사항... 박지훈.임프 1889 2006/06/23
10771                 Re:Re:Re:Re:[질문]showmodal -> show로 변경할때 의문사항... 이승근 1708 2006/06/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.