2장 주제는 폼의 특성과 화면 띄우기 이다.
솔직히 이걸 하나한 캡쳐해서 올리기엔 너무 빡쎄다 -_-
책을 보고 하면 되기에 ( --);;;
먼저 전체 소스코드를 받을 수 있는 곳을 알려주겠당~
http://tech.devgear.co.kr/devgearbook/2435
1. 메모리 해체 관련한 폼의 종류 (Auto Create 폼, Available 폼)
*Auto Create 폼 - 기본적으로 설정되어있는 메모리 해제를 신경 안쓰는 폼
*Available 폼 - 사용자가 필요한 시점에 동적으로 메모리에 로드하고 사용이 끝나면 메머리를 해제하는 방법을 택할 수 있는 폼
폼을 동적으로 생성하고 해제하기 위해서는 먼저 Available 폼으로 바꿔야 한다.
바꾸는 법은 Project -> Option 메뉴에서 Forms 항목에 있다.
2. 폼이 나타나는 방식에 따른 폼의 종류(Modal, Modeless)
* Modal 폼 - 다른 윈도우를 사용할수 없도록 화면의 맨 위에 활성화 되는 폼
(예 - 로그인 창, 옵션 창)
*Modeless 폼 - 폼이 생성되어 나타나도 여전히 다른 폼을 사용할 수 있는 폼
(예 - 시계, 인터넷창 등등)
-Modal 예제-
procedure TForm1.Button12Click(Sender: TObject);
begin
Form3 := TForm3.Create(Application);
if Form3.ShowModal = mrOk then
Caption := FormatDatetime('yyyy-mmmm-dd hh:nn:ss', Form3.DateTimePicker1.Date);
Form3.Free;
end;
주황색 부분이 모달로 띄우겠다는 뜻이다.
아래는 달력을 띄우는 것임 ㅡ.ㅡ;; 자세한건 소스를 다운 받아서...........
-Modeless 예제-
procedure TForm1.Button13Click(Sender: TObject);
var
I : Word;
begin
for I := 0 to Application.ComponentCount - 1 do
begin
if Application.Components[I] is TForm2 then
begin
(Application.Components[I] as TForm).Show;
Exit;
end;
end;
Form2 := TForm2.Create(Application);
Caption := IntToStr(Application.ComponentCount);
Form2.Show;
end;
주황색 부분은 버튼을 누를 때마다 창이 뜨는 것을 방지해준다. 오로지 1개만 뜸.
빨간색 부분이 Modeless로 띄우는 부분이다.
Modeless는 메모리 해제를 내가 해줘야 한다.(귀찮게시리 ㅡㅡ)
Form2가 Modeless 폼이라면 닫을 때 메모리 해제를 해주어야 한다.
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; //메모리 해제
end;
3. Close 할 때 어떻게 Close 할 껀지 결정해주긔~
caNone : 폼을 Close 하지 않음. 아무런 변화가 없음(뭐하러 있는거임? ㅡㅡ?)
caHide : 폼을 닫지 한고 숨김.
caFree : 폼이 닫히고 메모리에서 해제함.(바로 위에 사용했제?)
caMinimzed : 폼을 최소화 함.
프로그램이 끝나기 전에 Action 변수에 위에 것을 넣어줘야 함.
4. Is 연산자와 As 연산자
* is 연산자 : 개체 유형 체크 연산자
개체의 실제 런타임 클래스를 확인하는데 사용.
var
H : Thourly;
...
if H is Thourly then
이 연산자는 H라는 오브젝트가 Thourly 클래스나 그 자손 클래스의 인서턴스인 경우 True를 리턴하고 아니면 False를 리턴함.
* as 연산자 : 확인된 타입 캐스트 연산자
Procedure Button1Click(Sender:Tobject);
begin
(sender As TButton).Caption := 'ok';
end;
위 예문에서 sender은 TObject 타입이므로 Caption 속성에 접근할 수 없으므로 As 연산자를 사용하여 타입캐스트 하여 Caption 속성에 접근함.
5. 폼의 초기처리/ 마감처리를 위한 이벤트
- OnCreate 이벤트 - 폼이 생성될 때 발생하는 이벤트. 주로 화면의 초기처리 작업을 위한 이벤트로 사용
- OnShow 이벤트 - 폼이 표시될 때 발생하는 이벤트.
- OnActivate 이벤트 - 폼에 포커스가 넘어와 활성화 될 때 발생하는 이벤트.
- On Deactive 이벤트 - 폼이 비활성화될 때 발생하는 이벤트
- OnCloseQuery 이벤트 - OnClose 이벤트 발생전에 윈도우에 Close 되는지 확인하고 싶을 때 사용하는 이벤트
- OnClose 이벤트 - 폼을 닫을 때 발생하는 이벤트로 화면의 마무리 처리를 위한 이벤트로 사용
- OnDestroy 이벤트 - 폼이 해제될 때 발생하는 이벤트
여기까지 대충(정말 대충-_-)2장을 요약해봤다.(그래도 난 코딩하며 공부했다규!!)
소스 코드를 여기에 올리기엔 분량도 많으니 위에 소개한 소스코드를 다운 받아서 해보길 바란다.
델파이는 프로그램을 만드는데 정말 간단하게 만들수 있는 것 같다.
정말 많은 컴포넌트를 제공하고, 왠만한 기본 메뉴 정도는 다 만들어져 있다.
우리가 할일은 배치하고, 연결하고, 이쁘게 포장만 해도 왠만한 프로그램이 만들어진다.
물론 없는 것은 개발자가 직접 만들어야 하지만....
정말 빠른 시간에 프로그램을 작성할 수 있는 것이 델파이의 장점인것 같다.
3장은 그림판과 동영상 프로그램을 작성해볼껀데.
이건 하나하나 캡쳐해서 올려보겠다.(오오미)
댓글 없음:
댓글 쓰기