MdiChild폼으로 이미 만들어져서 사용중인 모듈을 실행 중에 모달 폼으로 호출할 필요가 있을 때가 있다.
코드 재활용과 관리 측면에서 매우 편리한다.
방법은 사용자 정의 생성자 constructor 를 만들면 된다.
...
public
{ Public declarations }
constructor CreateModal(AOwner: TComponent; aName, aStdno, aGrade: String); // 사용자정의 생성자 선언
end;
var
frmHw008_220_POS: TfrmHw008_220_POS;
implementation
uses Dm;
{$R *.DFM}
constructor TfrmHw008_220_POS.CreateModal(AOwner: TComponent; aName, aStdno, aGrade: String); // 사용자정의 생성자
begin
inherited Create(AOwner);
FormStyle := fsNormal;
BorderIcons := [biSystemMenu];
BorderStyle := bsDialog;
WindowState := wsNormal;
Position := poMainFormCenter
edName.Text := aName;
edStdno.Text := aStdno;
edStdno.Hint := aGrade;
end;
호출하는 곳에서는 다음 처럼 버튼 클릭시 사용자정의 생성자를 호출하면 된다.
procedure TfrmHw100.btHw220_CreClick(Sender: TObject);
begin
with TfrmHw008_220_POS.CreateModal(Application, '홍길동', '123456', '1학년') do
begin
try
Self.WindowState := wsMaximized; // 이상하게 원래 최대인 기존 폼이 줄어 들어서 다시 최대화 해야한다.
Visible := False; // ShowModal 하기전에 Visible False해야함, 생성자에 넣으면 작동안한다.
ShowModal;
finally
Free;
end;
end;
end;
'델파이' 카테고리의 다른 글
델파이 유니코드 체계 TComport 인쇄시 한글 깨짐 해결 (0) | 2016.03.11 |
---|---|
한영모드 알아내기 윈도우7 64비트에서 (0) | 2016.03.11 |
델파이 10 Seattle 설치후 콤포넌트 라이브러리 설치( ComPort, NumEdit) (0) | 2015.10.31 |
델파이 IDE UPX(실행파일압축) 설정하기 (0) | 2015.10.06 |
델파이2007 설치후 외부 콤포넌트 라이브러리 설치(JVCL, CPort, 퀵리포트, Indy) (0) | 2015.10.03 |