procedure TMainForm.N140Click(Sender: TObject);
begin
CreateMDIcshrm('현금잔고');
end;
procedure TMainForm.CreateMDICshrm(const Name: string);
var
Child: TfrmCshrm;
i : integer;
begin
for i:=0 to MDIChildCount -1 do
if MDIChildren[i] is TfrmCshrm then // 현재 창이 더있다면 띄우지 않습니다.
begin
MDiChildren[i].show;
showMessage(Name + '창은 열려 있습니다.');
Exit;
end;
Child := TfrmCshrm.Create(Application);
Child.Caption := Name;
Child.Height := 600;
Child.Width := 800;
//if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
end;
//************************************************************//
위의 상황을 다른 방향으로 바꿀려고 하거든요.
MainMenu에서 특정 메뉴를 클릭하면 원하는 창을 띄우는 Method를 만들고 싶어요...
위에는 새로운 메뉴를 하나씩 붙일때 마다 소스가 계속 늘어나잖아요.
그래서 frm_name만 넘겨주면 녀석이 알아서 창을 띄워주는 일을 시키고 싶어요.
// 이렇게 하고 싶어요
procedure Tfrm_Main.N140Click(Sender: TObject);
begin
win_Create('TfrmCshrm'); //띄우고자 하는 폼의 이름을 String으로 넘겼습니다.
end;
procedure Tfrm_Main.win_Create( frm_name : String);
begin
// 여기서 부터 어떻게 해야 할지 모르겠군요.
// String으로 넘어온걸 어떻게 객체 생성을 해야 할지...
// 좋은 조언을 부탁 드립니다.
// 같은 소스가 아닌 예를 들어 라이브러리 함수에 넣고 썼으면 하는데..
// 그렇게 가능도 하겠지요.
// 훌륭한 답변을 기다리면.........