Q&A

  • Window Open 하기...


오늘 참 여러가지로 질문을 올리네요...^^;

그래도 고수님들이 많은 곳이니 해결해 주시리라 믿습니다...



이번에 제가 하고자 하는 작업은 다음과 같습니다...



보통 Form 을 디자인 하면...

Form.caption 에 윈도우의 이름을 주곤 하는데...

어쩌다 보면 윈도우 타이틀과 메뉴에 써있는 글자가 틀릴 수 있지요...

(띄어 쓰기라든가, 약간의 철자 등등)

이런 것을 방지하기 위해서 메뉴의 텍스트를 읽어서 생성된 윈도우 타이틀로 쓰게 하고 싶었거든요...

물론 이거야 거뜬히 해결했지요...



허나 문제는 지금부터...



메뉴마다 몇 줄 안되긴 하지만 똑같은 스크립트에 Form 이름만 바꿔서 사용하는 것만큼 비효율적인 일도 없을 것 같아서요...

공통 함수를 짜서 윈도우 이름과 타이틀을 넘겨주면 알아서 윈도우 만들고 타이틀 찍고...

머 이런식의 함수를 만들고 싶거든요...

문제는 어떻게 Form 자체를 함수의 파라미터로 넘기느냐 인데...



여기서 고수님들의 조언을 부탁드리겠습니다.





하고 싶은 짓거리...

// TForm1 은 메뉴에 따라 다르겠지요...?

// 물론 프로그래머는 아니까 Form 의 이름을 그대로 넘길 수 있을테구요...



// 함수 사용

f_windowopen(TForm1, 'Test') ;



// 함수 선언

function f_windowopen(pfrm_UserForm : ??????? ; ps_title : string)

begin

pfrm_UserForm.Create(Application);

pfrm_UserForm.Caption := ps_title ;

end ;

1  COMMENTS
  • Profile
    yytr 2001.01.14 03:13
    이기태 wrote:

    >

    > 오늘 참 여러가지로 질문을 올리네요...^^;

    > 그래도 고수님들이 많은 곳이니 해결해 주시리라 믿습니다...

    >

    > 이번에 제가 하고자 하는 작업은 다음과 같습니다...

    >

    > 보통 Form 을 디자인 하면...

    > Form.caption 에 윈도우의 이름을 주곤 하는데...

    > 어쩌다 보면 윈도우 타이틀과 메뉴에 써있는 글자가 틀릴 수 있지요...

    > (띄어 쓰기라든가, 약간의 철자 등등)

    > 이런 것을 방지하기 위해서 메뉴의 텍스트를 읽어서 생성된 윈도우 타이틀로 쓰게 하고 싶었거든요...

    > 물론 이거야 거뜬히 해결했지요...

    >

    > 허나 문제는 지금부터...

    >

    > 메뉴마다 몇 줄 안되긴 하지만 똑같은 스크립트에 Form 이름만 바꿔서 사용하는 것만큼 비효율적인 일도 없을 것 같아서요...

    > 공통 함수를 짜서 윈도우 이름과 타이틀을 넘겨주면 알아서 윈도우 만들고 타이틀 찍고...

    > 머 이런식의 함수를 만들고 싶거든요...

    > 문제는 어떻게 Form 자체를 함수의 파라미터로 넘기느냐 인데...

    >

    > 여기서 고수님들의 조언을 부탁드리겠습니다.

    >

    >

    > 하고 싶은 짓거리...

    > // TForm1 은 메뉴에 따라 다르겠지요...?

    > // 물론 프로그래머는 아니까 Form 의 이름을 그대로 넘길 수 있을테구요...

    >

    > // 함수 사용

    > f_windowopen(TForm1, 'Test') ;

    >

    > // 함수 선언

    > function f_windowopen(pfrm_UserForm : ??????? ; ps_title : string)

    > begin

    > pfrm_UserForm.Create(Application);

    > pfrm_UserForm.Caption := ps_title ;

    > end ;





    procedure capchange1(Form : TForm1; caption : string);

    begin

    form.Caption := text;

    end;



    procedure capchange2(Form : TForm; caption : string);

    begin

    form.Caption := text;

    end;



    procedure capchange3(Form : TObject; caption : string);

    begin

    if form is TForm then

    (form as TForm).Caption := Text;

    end;





    procedure TForm1.Button1Click(Sender: TObject);

    begin

    capchange1(form1, '1');

    end;



    procedure TForm1.Button2Click(Sender: TObject);

    begin

    capchange2(form1, '2');

    end;



    procedure TForm1.Button3Click(Sender: TObject);

    begin

    capchange3(form1, '3');

    end;



    이렇게 등등 여러가지로 넘겨줄수 있습니다.



    그런데 님께서는 폼의 변수를 넘긴게 아니라 폼의 타입을 넘겼기때문에...

    f_windowopen(TForm1, 'Test') ;





    님같은 경우에는

    f_windowopen(폼이름{아마 form1일게예요.}, 'Test') ;



    // 함수 선언

    function f_windowopen(pfrm_UserForm : TForm1; ps_title : string)

    begin

    pfrm_UserForm.Create(Application);

    pfrm_UserForm.Caption := ps_title ;

    end ;



    이렇게 하셔야 할거예요.

    그럼 안녕히....

    오늘 부산에는 눈이 무지 많이 왔네요.

    오랜 만에 보는 함박눈이라 기분이 좋네여.....