폼 다루기
폼
애플리케이션의 가장 기본적인 윈도우. 한개의 폼은 한개의 화면. 다른 컴포넌트를 올릴 수 있는 컨테이너 역할.
프로젝트에 폼 추가
- 메인메뉴 : File > New > Vcl Form
- 툴바 : New items 아이콘 > Vcl Form
- Project Manager : 프로젝트 우측 마우스 버튼 > Add New > Vcl Form
폼 관리
- Project > Options > Forms
- Auto-create forms - 자동 생성 폼
- Avaliable forms - 생성 가능한 폼(수동 생성 폼)
폼 동적 생성
var 폼변수: 폼클래스타입; Form1: TForm1; begin 폼인스턴스변수 := 폼클래스타입.Create(소유자); // case #1 - 소유자 지정 Form1 := TForm1.Create(Application); Form2 := TForm2.Create(Form1); Form3 := TForm3.Create(Self); Form4 := TForm4.Create(nil); // case #2 - Application 객체이용, Application.MainForm 지정 Application.CreateForm(TForm1, Form1); end;
- Owner(소유자) - 소유자 해제 시 피 소유자 해제
- 소유자 미지정(nil) 시 직접 폼 인스턴스를 해제(Free)해야 함
- 프로젝트 소스코드에서 Application.CreateForm 방식 사용
폼 표시 및 해제
- ShowModal - 모달 폼 표시(새 폼에 제어권 전달, 새 폼만 활성화)
- Show - 모달리스 폼 표시(새 폼과 메인 폼 모두 활성)
모달리스 폼 표시/해제
메인 폼과 새 폼 모두 활성. 폼을 닫을때 메모리 해제 주의할 것.
begin Form2 := TForm2.Create(Self); Form2.Show; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; // caNone, caHide, caFree, caMinimize Form2 := nil; end;
모달 폼 표시/해제
Form1 := TForm1.Create(nil); Form1.ShowModal; Form1.Free;