Q&A

  • 개체의 동적생성후.. 생기는 이벤트에 대한 처리
안녕하세요... 한가지.. 궁금한게 있어서...그런데요...

폼에서 개체를 동적으로 생성시킨후.. 그 동적으로 생성된 객체에 이벤트가 발생

하였을 경우.. 어떻게 처리해야할지. 가 궁금해서여...

예를들어... 만약에 하나의 폼에 클릭을 계속해서 Button개체를 여러개 만들었습니다.

그런다음 각 버튼을 눌렀을 때... 해당 이벤트(OnClick)가 발생하게 되는데..

이렇게 동적으로 생성된 버튼에 생기는 이벤트는 어떻게 처리해야할지.. 궁금해서여...

예를 들어 동적으로 생성된 버튼을 누르면 OnClick이벤트가 발생하잖아여.. 이렇게 발생된 이벤트를 어떻게 처리해야하는지...

self를 이용해야할 거. 같은디.. 확실하지가 않아서..

책에도.. 자세하게 나와있질 않더라구여...

그래서 이렇게 질문을 드립니다...

구럼 무지무지. 추운데.. 프로그래밍 하느라 고생이.. 많으시겠지만..

자세한 설명...부탁드립니다......





2  COMMENTS
  • Profile
    류종택 2000.12.11 23:45
    아래 예제를 참고하세요..





    From 류..



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    TButton(Sender).Caption:= '아야!!';

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    Var

    Button : TButton;

    begin

    Button:= TButton.Create(Self);

    Button.Parent:= Self;

    Button.OnClick:= Button1Click;

    end;



    end.



    심종현 wrote:

    > 안녕하세요... 한가지.. 궁금한게 있어서...그런데요...

    > 폼에서 개체를 동적으로 생성시킨후.. 그 동적으로 생성된 객체에 이벤트가 발생

    > 하였을 경우.. 어떻게 처리해야할지. 가 궁금해서여...

    > 예를들어... 만약에 하나의 폼에 클릭을 계속해서 Button개체를 여러개 만들었습니다.

    > 그런다음 각 버튼을 눌렀을 때... 해당 이벤트(OnClick)가 발생하게 되는데..

    > 이렇게 동적으로 생성된 버튼에 생기는 이벤트는 어떻게 처리해야할지.. 궁금해서여...

    > 예를 들어 동적으로 생성된 버튼을 누르면 OnClick이벤트가 발생하잖아여.. 이렇게 발생된 이벤트를 어떻게 처리해야하는지...

    > self를 이용해야할 거. 같은디.. 확실하지가 않아서..

    > 책에도.. 자세하게 나와있질 않더라구여...

    > 그래서 이렇게 질문을 드립니다...

    > 구럼 무지무지. 추운데.. 프로그래밍 하느라 고생이.. 많으시겠지만..

    > 자세한 설명...부탁드립니다......

    >

    >

  • Profile
    한원희 2000.12.12 02:41
    류종택님의 답변에 약간 덧붙이자면,



    버튼을 여러개 계속 동적 생성을 한다면,

    이벤트 핸들러에서 문제가 생기겠지요...

    아래와 같이 코딩을 한다면, 생성된 모든 동적 버튼이 눌렸을 경우

    한 이벤트 핸들러 Button1Click 만 호출이 되기 때문에,

    어느 버튼이 눌린 것인지 구별할 수가 없지요...



    몇 가지 꽁수를 만들 수가 있는데,

    버튼을 이름들을 가지고 구별하는 방법 ; 버튼을 생성할 때, 이름을

    구별할 수 있도록 생성하는 방법이죠...

    컴포넌트의 tag 프로퍼티를 이용하는 방법 ; 컴포넌트에 부가적으로

    있는 tag에 버튼을 구별할 수 있는 정수 값을 넣어 주는 방법입니다.

    버튼 생성시 이벤트 핸들러를 구별하는 방법 ; 버튼을 생성할 당시에

    이벤트 핸들러를 따로 따로 붙여 주는 것이죠...



    저 개인적으로는 2번째 방법하고, 세번째 방법을 썼드랬습니다.



    이미 모두 아시는 방법이었나요?



    허접한 첨언이었습니다. ^^;



    류종택 wrote:

    > 아래 예제를 참고하세요..

    >

    >

    > From 류..

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > TButton(Sender).Caption:= '아야!!';

    > end;

    >

    > procedure TForm1.FormCreate(Sender: TObject);

    > Var

    > Button : TButton;

    > begin

    > Button:= TButton.Create(Self);

    > Button.Parent:= Self;

    > Button.OnClick:= Button1Click;

    > end;

    >

    > end.

    >

    > 심종현 wrote:

    > > 안녕하세요... 한가지.. 궁금한게 있어서...그런데요...

    > > 폼에서 개체를 동적으로 생성시킨후.. 그 동적으로 생성된 객체에 이벤트가 발생

    > > 하였을 경우.. 어떻게 처리해야할지. 가 궁금해서여...

    > > 예를들어... 만약에 하나의 폼에 클릭을 계속해서 Button개체를 여러개 만들었습니다.

    > > 그런다음 각 버튼을 눌렀을 때... 해당 이벤트(OnClick)가 발생하게 되는데..

    > > 이렇게 동적으로 생성된 버튼에 생기는 이벤트는 어떻게 처리해야할지.. 궁금해서여...

    > > 예를 들어 동적으로 생성된 버튼을 누르면 OnClick이벤트가 발생하잖아여.. 이렇게 발생된 이벤트를 어떻게 처리해야하는지...

    > > self를 이용해야할 거. 같은디.. 확실하지가 않아서..

    > > 책에도.. 자세하게 나와있질 않더라구여...

    > > 그래서 이렇게 질문을 드립니다...

    > > 구럼 무지무지. 추운데.. 프로그래밍 하느라 고생이.. 많으시겠지만..

    > > 자세한 설명...부탁드립니다......

    > >

    > >