Q&A

  • 폼을 넘기려면 어떻게 해야 되나요?
각각의 폼에 있는 컴포넌트의 이름을 스트링에 담으려고 합니다.



이것을 함수로 처리하기 위해 폼의 이름을 변수로 넘기면 에러가 나거든요..



어떻게 해야 하나요?



FIRST.PAS :



procedure TForm1.Button1Click(Sender: TObject);

begin

form_name := 'form1.pagecontrol1.activepage';

string1 := unit1.make(form_name);

listbox1.items.add(string1);



====================================================



SECOND.PAS :



function make(FORM_NAME:STRING) : string;

for i := 0 to FORM_NAME.ControlCount - 1 do

result := FORM_NAME.Controls[i].Name;







감사합니다.

6  COMMENTS
  • Profile
    배불뚝 2000.01.20 23:38
    김진호 wrote:

    > 각각의 폼에 있는 컴포넌트의 이름을 스트링에 담으려고 합니다.

    >

    > 이것을 함수로 처리하기 위해 폼의 이름을 변수로 넘기면 에러가 나거든요..

    >

    > 어떻게 해야 하나요?

    >

    > FIRST.PAS :

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > form_name := 'form1.pagecontrol1.activepage';

    > string1 := unit1.make(form_name);

    > listbox1.items.add(string1);

    >

    > ====================================================

    >

    > SECOND.PAS :

    >

    > function make(FORM_NAME:STRING) : string;

    > for i := 0 to FORM_NAME.ControlCount - 1 do

    > result := FORM_NAME.Controls[i].Name;

    >

    >

    >

    > 감사합니다.





    안녕하세요.. 많은 분들이 김진호님께 답변을 드리고 있네요..인기 좋으신가 봐요.

    제가 나름대로 정리해봤어요. form1에서 form2를 선택하고 버튼을 클릭하면 선택한 폼(form2)위에 있는 pagecontrol중 activepage위의 콤포넌트 이름을 form1의 listbox1에 가져온다....맞나요?

    제 나름대로 코딩해서 테스트해보니까 되는 것 같아서 올립니다.



    FIRST.PAS :

    ...//uses 절에 SECOND 추가





    procedure TForm1.Button1Click(Sender: TObject);

    var

    page_name : Ttabsheet;

    i : integer;

    strarr : fstraffay;

    begin

    page_name := form1.pagecontrol1.activepage;

    strarr := unit1.make(page_name);

    listbox1.clear;

    for i := 0 to length(strarr) -1 do

    listbox1.items.add(strarr[i]);

    end;

    ====================================================



    SECOND.PAS :

    type fstrarray = array of string;

    ....



    function make(activepg : Ttabsheet) : fstrarray;

    var

    i, j : integer;

    strarr : fstrarray;

    begin

    i := activepg.ControlCount;

    setlength(strarr, i);

    for j := 0 to i - 1 do

    strarr[j] := activepg.Controls[j].Name;

    result := strarr;

    end;



    잘되시기를 빕니다...좋은 하루 되세요..



  • Profile
    김진호 2000.01.21 01:33
    혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도 있고 ) 해당 컴포넌트의 내용도 함께 가져올수 있나요?



    감사합니다.



    즐거운 하루 되세요...

  • Profile
    배불뚝 2000.01.21 01:55
    김진호 wrote:

    > 혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도 있고 ) 해당 컴포넌트의 내용도 함께 가져올수 있나요?

    >

    > 감사합니다.

    >

    > 즐거운 하루 되세요...





    내용중



    strarr[j] := activepg.Controls[j].Name;

    대신 이렇게 해보세요.



    if activepg.Controls[j] is Tmemo then

    strarr[j] := activepg.Controls[j].Name

    + ':' + Tmemo(activepg.controls[j]).text;

    else if activepg.Controls[j] is Tcombobox then

    ...

    등으로 접근하시면 됩니다.

    좋은 오후 되세요..



  • Profile
    김진호 2000.01.22 21:47
    배불뚝 wrote:

    > 김진호 wrote:

    > > 혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도 있고 ) 해당 컴포넌트의 내용도 함께 가져올수 있나요?

    > >

    > > 감사합니다.

    > >

    > > 즐거운 하루 되세요...

    >

    >

    > 내용중

    >

    > strarr[j] := activepg.Controls[j].Name;

    > 대신 이렇게 해보세요.

    >

    > if activepg.Controls[j] is Tmemo then

    > strarr[j] := activepg.Controls[j].Name

    > + ':' + Tmemo(activepg.controls[j]).text;

    > else if activepg.Controls[j] is Tcombobox then

    > ...

    > 등으로 접근하시면 됩니다.

    > 좋은 오후 되세요..

    >





    TQuery, TDbGrd 등과 같이 실행시에 "눈에 보이지 않는 컴포넌트"는 갖고 오질 못하는데

    어떻게 해야 되나요?



    일테면



    TQuery(activepg.query1).text := 'select * from emp'; //에러



    이런 작업을 실행하고 싶거든요



  • Profile
    유효종 2000.01.20 23:06
    김진호 wrote:

    > 각각의 폼에 있는 컴포넌트의 이름을 스트링에 담으려고 합니다.

    >

    > 이것을 함수로 처리하기 위해 폼의 이름을 변수로 넘기면 에러가 나거든요..

    >

    > 어떻게 해야 하나요?

    >

    > FIRST.PAS :

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > form_name := 'form1.pagecontrol1.activepage';

    > string1 := unit1.make(form_name);

    > listbox1.items.add(string1);

    >

    > ====================================================

    >

    > SECOND.PAS :

    >

    > function make(FORM_NAME:STRING) : string;

    > for i := 0 to FORM_NAME.ControlCount - 1 do

    > result := FORM_NAME.Controls[i].Name;

    >

    >

    >

    > 감사합니다.





    ====================================================================

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Unit2,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Memo1: TMemo;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Memo1.Lines.Add(form2.MakeStr(Self));

    end;



    end.

    ==============================================================

    unit Unit2;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;



    type

    TForm2 = class(TForm)

    private

    { Private declarations }

    public

    { Public declarations }

    function MakeStr(Sender:TForm):string;

    end;



    var

    Form2: TForm2;



    implementation



    {$R *.DFM}



    function TForm2.MakeStr(Sender:TForm):string;

    var

    i: integer;

    s :string;

    begin

    for i := 0 to Sender.ControlCount - 1 do

    s := S + ' ' + Sender.Controls[i].Name;



    result := s;

    end;



    end.





    ..............원하시는게 이건가요 ?.............

  • Profile
    김진호 2000.01.21 01:34
    혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도 있고 ) 해당 컴포넌트의 내용도 함께 가져올수 있나요?



    감사합니다.



    즐거운 하루 되세요...

    • 이영수
      2000.01.29 19:23
      castle load wrote: > 팝업 메뉴중에 아이템을 만들려면 오떻게 합니까? > > 예를들어, a.txt에서 오른...
    • 김양수
    • 2000.01.21 00:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • castle load
      2000.01.21 00:39
      김양수 wrote: > 두가지의 METHOD의 차이점이 궁금하군요. > 너무 기본적인 질문인가 창피하네요. > >...
    • 하얀까마귀
      2000.01.21 04:02
      castle load wrote: > 김양수 wrote: > > 두가지의 METHOD의 차이점이 궁금하군요. > > 너무 기본적인 ...
    • 강인규
      2000.01.21 23:36
      더 추가하자면 showmodal 명령은 일종의 인터럽트입니다. showmodal이 실행되면 그부분에서 해당프로그램은...
    • 김양수
    • 2000.01.21 00:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최재원
      2000.01.21 03:57
      제가 알고 있는데로 말씀드릴께요.. 도움이 되시길..... 먼저 form1(Mainform = 부모창) ---> object ...
    • 강정민
    • 2000.01.21 00:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.01.21 03:54
      강정민 wrote: > qreport를 사용하고 있습니다. > > 이때 테이블에 있는 내용도 출력하면서 > 모든 페...
    • 밝은빛
    • 2000.01.20 23:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하늘사랑
      2000.02.02 19:28
      밝은빛 wrote: > 안녕하세요.... > > 현재 Active-X를 이용하여 웹 페이지를 만들고 있습니다.. > ...
    • 유효종
      2000.01.20 23:42
      밝은빛 wrote: > 안녕하세요.... > > 현재 Active-X를 이용하여 웹 페이지를 만들고 있습니다.. > ...
    • 유효종
      2000.01.20 23:44
      초보 wrote: > edit1에는 한글을 edit2에는 영어를 입력해야만 하는경우에 > 자동으로 변환되게 할수 있...
    • 하얀까마귀
      2000.01.21 05:11
      맨발의청춘 wrote: > 계산 필드을 소트 할려고 합니다.어떻게 하는지요. > 혹시 안되나요. > 꼭 계산 필...
    • 박광범
    • 2000.01.20 22:35
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김주석
      2000.01.20 23:09
      박광범 wrote: > query 콤포넌트를 사용해서 update 를 하려 합니다.. > 이렇게 말로 하는 것보단 코딩을...
    • lee
      2000.01.20 22:59
      박광범 wrote: > query 콤포넌트를 사용해서 update 를 하려 합니다.. > 이렇게 말로 하는 것보단 코딩을...
    • 유효종
      2000.01.20 22:49
      박광범 wrote: > > 일단 StockB 라는 table 이 있고, 이 table은 ItemID 와 ItemName 과 No 라는 필드를...
    • 초보
    • 2000.01.20 22:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri
      2000.01.21 07:19
      초보 wrote: > 안녕하세요 > 델파이 고수님들의 도움이 필요해서 이렇게 > Error creating Cursor Handl...
    • 궁금함
    • 2000.01.20 21:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유효종
      2000.01.21 00:34
      궁금함 wrote: > 안녕하세요. > > Delphi 4.0으로 프로그램을 개발 하는중에 몇가지 궁금사항이 있어...
    • neocity
    • 2000.01.20 21:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이곤섭
      2000.01.20 22:09
      neocity wrote: > 죄송한 질문이지만...... > Edit에서 특정한 스트링을 제거 하고 싶습니다. > StrPos(...
    • 김진호
    • 2000.01.20 20:10
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 배불뚝
      2000.01.20 23:38
      김진호 wrote: > 각각의 폼에 있는 컴포넌트의 이름을 스트링에 담으려고 합니다. > > 이것을 함수로 ...
    • 김진호
      2000.01.21 01:33
      혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도...
    • 배불뚝
      2000.01.21 01:55
      김진호 wrote: > 혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobo...
    • 김진호
      2000.01.22 21:47
      배불뚝 wrote: > 김진호 wrote: > > 혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (...
    • 유효종
      2000.01.20 23:06
      김진호 wrote: > 각각의 폼에 있는 컴포넌트의 이름을 스트링에 담으려고 합니다. > > 이것을 함수로 ...
    • 김진호
      2000.01.21 01:34
      혹시 다른폼에 있는 PageControl에 속하는 컴포넌트가 edit인 경우 (memo도 있고 combobox의 항목이 될수도...
    • 이대선
      2000.01.20 21:10
      용순이 wrote: > 프로그램을 만들때 화면해상도를 바꾸면 원래 만들었을때의 폼이나 컴포넌트,폰트등이 ...