안녕하십니까.
우선 ' mdi 로 구현하는 MIS 프로젝트 ' 이라는 강좌를 올려주신
이만준님께 감사 드립니다.
(강좌에서 mdi로 검색하면
' mdi 로 구현하는 MIS 프로젝트 ' 이라는 것이 있습니다.
참고 바랍니다.)
그런데 제가 그 대로 해보니 실행이 안되는 곳이 있던데요.
아래 부분에서처럼
1. unit2 에
initialization RegisterClasses([TForm2]);
2. function CreateChild(sClass : string):Boolean;
함수 생성
3. 메인 폼에서 Form2 := TForm2.Create(Self); 라고 생성했던 루틴을 지우고
CreateChild('TForm2');
이렇게 하면 childform 이 뜬다고 하셨는데
아무리 해도 뜨지 않습니다.
고수님들의 조언 부탁드립니다.
박한수 올림
==============================================================
4. 차일드 폼 다루기
1)클래스 이름으로 차일드 생성하기
차일드 클래스의 이름만으로 차일드를 생성시키는 방법이 있습니다.
델파이가 비주얼 툴리기 때문에 이런 기능이 필요했겠지요..
(1) 차일드 유닛의 맨 아래에 다음라인을 추가한다.
initialization RegisterClasses([TForm2]);
컴포넌트에서 볼 수 있는 소스지요...클래스를 등록하면
'TForm2' 라는 클래스 이름으로 클래스를 찾을 수 가 있습니다.
(2) 이제 생성을 해보지요
function CreateChild(sClass : string):Boolean;
var MyFormClass : TFormClass;
WorkForm : TForm;
H : THandle;
begin
Result := True;
MyFormClass := TFormClass(GetClass(sClass)); //클래스를 찾아온다
if MyFormClass <> nil then begin
WorkForm := MyFormClass.Create(Application.MainForm);
end else Result := False;
end;
..........
메인 폼에서 Form2 := TForm2.Create(Self); 라고 생성했던 루틴을 지우고
CreateChild('TForm2');
라고 써보지요...역쉬...차일드가 생성될 겁니다..