Q&A

  • 윈도우를 띄우는데...
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으로 넘어온걸 어떻게 객체 생성을 해야 할지...

// 좋은 조언을 부탁 드립니다.



// 같은 소스가 아닌 예를 들어 라이브러리 함수에 넣고 썼으면 하는데..

// 그렇게 가능도 하겠지요.

// 훌륭한 답변을 기다리면.........









0  COMMENTS