Q&A

  • 왕고수님 봐주세요...T.T 급급급...
잘모르니까 찾아도 못 찾겠구..설명도 잘 될지 모르겠네요..-.-

하지만 넘 급급급급..입니다...

텍스트 값을 Component 명으로 바꿀 수 있나요? 그니까..

예를 들어서

Label 이 Label1, Label2, Label3... 이렇게 여러개가 있습니다.

Label1.Caption 에는 '1'을 넣어야 하고, Label2.Caption 은 '2', Label3은 '3'..

이런식으로 넣어야 하는데 Label 갯수가 100개 정도 되면 하나하나 넣게 되면 장난

아니쟎아요.. 그래서 For 문을 돌리면서 대입하는 식으로

For i := 1 to 100 do

Label + i := i;

여기서 Label + i 라는 것을 Object 화할 수 있어서 Label1, Label2, Label3..

이렇게 변환이 될 수 있다면 금방 할 수 있지 않겠습니까?

제가 하려는 건 이건 아니고 비슷한 건데 좀더 복잡해서 이렇게 쉬운 예를 들었습니다.

설명이 부족하면 물어보셔도 되니깐 무슨 얘기인지 아시거나 비슷한 것을 아시는 왕고수

님은 꼭 답변해 주시기 부탁드리겠습니다.

말도 안되는 것이 아니길..T.T 100개 다 쓰면 된다고 하시지 않길..T.T

2  COMMENTS
  • Profile
    블랙봉 2001.07.12 21:02
    이런 방법도 있습니다.



    for i := 1 to 100 do

    TLabel(FindComponent('Label' + IntToStr(i))).Caption := IntToStr(i);



    이 방법은 Label들 이름이 Label1, Label2 이런 식일 때만 가능하죠.



    T.T wrote:

    > 잘모르니까 찾아도 못 찾겠구..설명도 잘 될지 모르겠네요..-.-

    > 하지만 넘 급급급급..입니다...

    > 텍스트 값을 Component 명으로 바꿀 수 있나요? 그니까..

    > 예를 들어서

    > Label 이 Label1, Label2, Label3... 이렇게 여러개가 있습니다.

    > Label1.Caption 에는 '1'을 넣어야 하고, Label2.Caption 은 '2', Label3은 '3'..

    > 이런식으로 넣어야 하는데 Label 갯수가 100개 정도 되면 하나하나 넣게 되면 장난

    > 아니쟎아요.. 그래서 For 문을 돌리면서 대입하는 식으로

    > For i := 1 to 100 do

    > Label + i := i;

    > 여기서 Label + i 라는 것을 Object 화할 수 있어서 Label1, Label2, Label3..

    > 이렇게 변환이 될 수 있다면 금방 할 수 있지 않겠습니까?

    > 제가 하려는 건 이건 아니고 비슷한 건데 좀더 복잡해서 이렇게 쉬운 예를 들었습니다.

    > 설명이 부족하면 물어보셔도 되니깐 무슨 얘기인지 아시거나 비슷한 것을 아시는 왕고수

    > 님은 꼭 답변해 주시기 부탁드리겠습니다.

    > 말도 안되는 것이 아니길..T.T 100개 다 쓰면 된다고 하시지 않길..T.T

  • Profile
    얼음사탕 2001.07.12 20:18
    원하시는게 이런건지 ^^a



    procedure TForm1.Composetting;

    var

    i,j: integer;

    begin

    for i:= 0 to ComponentCount - 1 do

    begin

    //요기서 부터...

    if Components[i] is TLabel then

    for j := 1 to 100 do

    begin

    TLabel(Components[i]).Caption := copy(TLabel(Components[i]).name,6,1);

    //전 무식하게 copy를 썼는데 개념만 이해하셨음 응용가능하실꺼예요. ^^;;;

    end;

    end;

    end;