Q&A

  • [Q]동일한 이름으로 생성된 버튼 제어하기??
S : Array[0..2] of TButton;

하고 어떤이벤트에서

S[0]:= TButton.Create(Self);

몇가 프로퍼티설정...



이렇게 하고 다른 이벤트에서 다시

S[0]:= TButton.Create(Self);

(위치를 다르게 해서..)



즉 S[0] 라는 이름의 버튼이 2개가 생겼는데,

문제는 이렇게 생긴 버튼의 프로퍼티를 바꿀려고 하니 나중에 생긴것만 바뀌네요

동시에 바꾸는 방법이나 앞의 것을 바꾸는 방법 알려주시면 감사하겠습니다



예) S[0].Caption := 'test';

라고 하면 나중에 생긴 버튼의 Caption 만 바뀜.

3  COMMENTS
  • Profile
    김종호 1999.08.18 02:10
    하나의 변수에 두개의 값을 할당하려고 하면

    당연 나중에 할당된 값이 저장되겠지요..?



    마찬가지고 TButton 타입의 변수를 선언해서

    두개의 서로 다른 이벤트에서 버튼을 생성시키면

    당연 나중에 생성된 버튼이 할당되고

    먼저 생성된 버튼은 메모리에 붕 떠버리지요..



    가장 쉬우면서 효과적인 방법은

    변수를 두개 선언하는것이 아닐까요..?



    서경철 께서 말씀하시기를...

    > S : Array[0..2] of TButton;

    > 하고 어떤이벤트에서

    > S[0]:= TButton.Create(Self);

    > 몇가 프로퍼티설정...

    >

    > 이렇게 하고 다른 이벤트에서 다시

    > S[0]:= TButton.Create(Self);

    > (위치를 다르게 해서..)

    >

    > 즉 S[0] 라는 이름의 버튼이 2개가 생겼는데,

    > 문제는 이렇게 생긴 버튼의 프로퍼티를 바꿀려고 하니 나중에 생긴것만 바뀌네요

    > 동시에 바꾸는 방법이나 앞의 것을 바꾸는 방법 알려주시면 감사하겠습니다

    >

    > 예) S[0].Caption := 'test';

    > 라고 하면 나중에 생긴 버튼의 Caption 만 바뀜.





  • Profile
    서경철 1999.08.18 02:27
    답변 감사드립니다.

    근데 이렇게 할 수 있는 방법은 없는건가요?

    (Sender as TButton).프로퍼티 해서 그 버튼이 눌려졌을때 행해지는건 되는데

    하나가 눌려졌을때 다른 모든 버튼의 프로퍼티도 바뀌게 하고 싶거든요

    (이렇게 안하면 프로그램이 좀 복잡해지거든요...귀찮아서...^^)





    김종호 께서 말씀하시기를...

    > 하나의 변수에 두개의 값을 할당하려고 하면

    > 당연 나중에 할당된 값이 저장되겠지요..?

    >

    > 마찬가지고 TButton 타입의 변수를 선언해서

    > 두개의 서로 다른 이벤트에서 버튼을 생성시키면

    > 당연 나중에 생성된 버튼이 할당되고

    > 먼저 생성된 버튼은 메모리에 붕 떠버리지요..

    >

    > 가장 쉬우면서 효과적인 방법은

    > 변수를 두개 선언하는것이 아닐까요..?

    >





  • Profile
    김종호 1999.08.18 07:46
    답일 될런지는 잘 모르겠지만 참고하세요.



    procedure TForm1.Button1Click(Sender: TObject);

    var

    i: Integer;

    Temp: TLabel;

    begin

    for i:=0 to ComponentCount-1 do

    if Components[i] is TLabel then

    begin

    Temp := TLabel(Components[i]);

    Temp.Caption := 'Text';

    end;

    end;



    서경철 께서 말씀하시기를...

    > 답변 감사드립니다.

    > 근데 이렇게 할 수 있는 방법은 없는건가요?

    > (Sender as TButton).프로퍼티 해서 그 버튼이 눌려졌을때 행해지는건 되는데

    > 하나가 눌려졌을때 다른 모든 버튼의 프로퍼티도 바뀌게 하고 싶거든요

    > (이렇게 안하면 프로그램이 좀 복잡해지거든요...귀찮아서...^^)