오늘 참 여러가지로 질문을 올리네요...^^;
그래도 고수님들이 많은 곳이니 해결해 주시리라 믿습니다...
이번에 제가 하고자 하는 작업은 다음과 같습니다...
보통 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 ;
>
> 오늘 참 여러가지로 질문을 올리네요...^^;
> 그래도 고수님들이 많은 곳이니 해결해 주시리라 믿습니다...
>
> 이번에 제가 하고자 하는 작업은 다음과 같습니다...
>
> 보통 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 ;
이렇게 하셔야 할거예요.
그럼 안녕히....
오늘 부산에는 눈이 무지 많이 왔네요.
오랜 만에 보는 함박눈이라 기분이 좋네여.....