Q&A

  • 콤포넌트이름으로 루프를 돌릴수 없을까요? 제발.....
폼에 에티터박스가 20 * 7 개(무려 140개)가 있어요.



여기에 텍스트를 넣으려고 하는데 140줄이나 코딩을 해야하는데,

이건 너무 합니다.



이름은 규칙적으로 지정했습니다.



a011 a012 .......... a017

a021 a022 .......... a017

......

...

a201 a202 .......... a207



로 배치되 있습니다.



이걸 루프돌면서 텍스트를 넣을수 없을까요..

비슷한 의견이라도 꼭 부탁드리겠습니다.



감사합니다.











4  COMMENTS
  • Profile
    정성훈 2000.12.15 23:12
    안녕하세요.

    저도 얼마전에 그런일이 있어서 여기서 돔을 받았습니당.

    아마 이 부분도 참고가 되셨음 하네요.

    panel1 안에 있는 것들만 제어할 경우입니다.



    var

    i : Integer;

    begin

    for i := 0 to ComponentCount-1 do

    begin

    if ( Components[i] is TEdit ) then

    begin

    if TEdit(Components[i]).Parent = Panel1 then TEdit(Components[i]).Clear;

    end; //if

    end; //for

    end;





    진현주 wrote:

    > 폼에 에티터박스가 20 * 7 개(무려 140개)가 있어요.

    >

    > 여기에 텍스트를 넣으려고 하는데 140줄이나 코딩을 해야하는데,

    > 이건 너무 합니다.

    >

    > 이름은 규칙적으로 지정했습니다.

    >

    > a011 a012 .......... a017

    > a021 a022 .......... a017

    > ......

    > ...

    > a201 a202 .......... a207

    >

    > 로 배치되 있습니다.

    >

    > 이걸 루프돌면서 텍스트를 넣을수 없을까요..

    > 비슷한 의견이라도 꼭 부탁드리겠습니다.

    >

    > 감사합니다.

    >

    >

    >

    >

    >

  • Profile
    김동규 2000.12.15 06:33
    진현주 wrote:

    > 폼에 에티터박스가 20 * 7 개(무려 140개)가 있어요.

    >

    > 여기에 텍스트를 넣으려고 하는데 140줄이나 코딩을 해야하는데,

    > 이건 너무 합니다.

    >

    > 이름은 규칙적으로 지정했습니다.

    >

    > a011 a012 .......... a017

    > a021 a022 .......... a017

    > ......

    > ...

    > a201 a202 .......... a207

    >

    > 로 배치되 있습니다.

    >

    > 이걸 루프돌면서 텍스트를 넣을수 없을까요..

    > 비슷한 의견이라도 꼭 부탁드리겠습니다.

    >

    > 감사합니다.

    >

    >

    >

    >

    >

    1. 폼에 텍스트를 넣어야 할 에티(?)터박스만 있을때



    for i:= 0 to ComponentCount - 1 do

    begin

    if (Components[i] is TEdit) then

    TEdit(Components[i]).Text := '나는나' + inttostr(i);

    end;



    2. 변경할 것도 있고 그냥 놔 둘 것도 있을 때



    변경할 에티(?)터 박스의 tag 에 일정한 값을 넣는다.

    그리고..



    for i:= 0 to ComponentCount - 1 do

    begin

    if (Components[i] is TEdit) then

    if TEdit(Components[i]).tag = 99 then

    TEdit(Components[i]).Text := '나는나' + inttostr(i);

    end;



  • Profile
    김상호 2000.12.15 06:32


    For j := 1 to 15 do begin

    TEdit(FindComponent('A' + IntToStr(j))).Text :='테스트';

    end;



    이와 같은 형식으로 하면 됩니다.







    진현주 wrote:

    > 폼에 에티터박스가 20 * 7 개(무려 140개)가 있어요.

    >

    > 여기에 텍스트를 넣으려고 하는데 140줄이나 코딩을 해야하는데,

    > 이건 너무 합니다.

    >

    > 이름은 규칙적으로 지정했습니다.

    >

    > a011 a012 .......... a017

    > a021 a022 .......... a017

    > ......

    > ...

    > a201 a202 .......... a207

    >

    > 로 배치되 있습니다.

    >

    > 이걸 루프돌면서 텍스트를 넣을수 없을까요..

    > 비슷한 의견이라도 꼭 부탁드리겠습니다.

    >

    > 감사합니다.

    >

    >

    >

    >

    >

  • Profile
    권경미 2000.12.15 18:33


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

    begin



    if (form1.controls[i] is tedit) and

    (copy(form1.controls[i].Name,1,1) = 'A') then

    begin



    TEdit(form1.controls[i]).text := '1';



    end

    else continue;





    end;