Q&A

  • WriteComponentResFile에 대한 질문
안녕하세요 프로그램을 만들어보려고 깨작째작되다가 걸려서 글올리게 되었습니다.
우선 Form1과 Form2를 만들어서 예쁘게 꾸며놨습니다.
만약 Form1에 있는 버튼을 누르면 Form2가 복사가 되어서
Form2와 같은 모습의 폼이 만들어지는데요...
방식은 이렇습니다.

RegisterClasses([TMemo, TMainMenu, TPanel, TLabel, TButton]);

WriteComponentResFile('Temp.dfm', Form1);
Form2 := TForm.CreateNew(Application);

ReadComponentResFile('Temp.dfm', Form2);

뭐 겉모습이 만들어지는것까지는 문제가 없었는데
Form2에 있는 버튼에다가 onClick 이벤트를 넣고 다시 Form1을
돌려 Form2를 만들려고 하면 에러가 나네요...
해결 방법은 없나요?

지금의 방식은 그냥 폼에 있는 컴포넌트들만 카피해다가 다시
불러들이는것으로 알고 있는데
Form2와 연관된 Unit의 procedure와 function들을 같이 카피하는 방법은 없을까요?

고수님들... 도와주세엽...
읽어주셔서 감사합니다.
2  COMMENTS
  • Profile
    이광수 2002.02.20 19:43
    원하시는것이 정확하지는 않지만
    만약 form을 상속받아 사용하려는 것이라면

    file->new->프로젝트명->현재까지 만든폼 리스트

    여기서 선택하셔서 폼을 만들면 선택한 폼의 컴포넌트가 다 나옵니다.
    여기다가 뭐 추가하시면 될것 같네요.

    즉 상속받은 상위 폼의 모든 컴포넌트가 하위 폼에 나온다는 거죠.

  • Profile
    김의준 2002.02.20 20:22
    음 제가 원하는것은 프로그램 런타임시에 버튼 이벤트를 통해 새로운 폼이 생성되고 이 생성된 폼에 이미 만들어져있는 폼에서의 컴포넌트와 프로시져들을 상속받는것입니다.

    다시말씀드리면....
    Form1과 Form2가 있는데 Form1에 있는 버튼을 눌러서 Form2와 똑같이 생긴 새로운 창을 만듭니다.  Form2에 있는 모든 컴퍼넌트들이 상속되어서 말이지요.  근데 Form2와 연결된 Unit2에 아무 프로그램도 없으면 문제가 없는데 Form2에 위치한 버튼에 onClick이벤트를 넣고 Unit2에서도 그에대한 처리를 해주면 WriteComponentResFile에서 에러가 나네요...

    방법이 없을까요?