Timage 타입의 배열을 선언해서 이미지를 동적으로 생성했습니다.
각 이미지에 click이벤트를 주고 싶어서
이벤트프로시저를 임의로 하나 선언을 하고
-----------------------------------------------------------
private
procedure ImageClick(Sender: TObject);
....
procedure TForm1.ImageClick(Sender: TObject);
begin
showmessage(inttostr(index));
end;
-----------------------------------------------------------
동적 이미지생성시에 그 이벤트프로시저를 참조 하도록 했습니다.
-----------------------------------------------------------
image[index] := TImage.create(self);
image[index].OnClick := ImageClick;
-----------------------------------------------------------
그런데 생성되는 모든 이미지가 하나의 이벤트프로시저로 가니까..
클릭이벤트를 발생시킨 이미지가 배열의 몇번째 이미지인지를 알 수가 없습니다.
도대체 어떻게 시도를 해봐야 문제가 해결될지..
이미지가 몇개가 생성될지도 모르는데..
무작정 이벤트프로시저를 미리 많이 만들어놓을 수도 없고...
아~~정말 난감합니다..
고수님들의 도움이 절실히 필요합니다..앙~
플리~즈~~~~~~~~
이미지 생성할때 Tag에 인덱스값을 주어서 판단하시면 될거 같네요...
image[index] := TImage.create(self);
image[index].OnClick := ImageClick;
image[index].Tag := Index;
procedure TForm1.ImageClick(Sender: TObject);
begin
showmessage(inttostr( TImage(Sender).Tag ));
end;
^^ 항상 즐코하세요...
아마글래머 wrote:
> Timage 타입의 배열을 선언해서 이미지를 동적으로 생성했습니다.
> 각 이미지에 click이벤트를 주고 싶어서
> 이벤트프로시저를 임의로 하나 선언을 하고
> -----------------------------------------------------------
> private
> procedure ImageClick(Sender: TObject);
>
> ....
>
> procedure TForm1.ImageClick(Sender: TObject);
> begin
> showmessage(inttostr(index));
> end;
> -----------------------------------------------------------
> 동적 이미지생성시에 그 이벤트프로시저를 참조 하도록 했습니다.
> -----------------------------------------------------------
> image[index] := TImage.create(self);
> image[index].OnClick := ImageClick;
> -----------------------------------------------------------
> 그런데 생성되는 모든 이미지가 하나의 이벤트프로시저로 가니까..
> 클릭이벤트를 발생시킨 이미지가 배열의 몇번째 이미지인지를 알 수가 없습니다.
>
> 도대체 어떻게 시도를 해봐야 문제가 해결될지..
> 이미지가 몇개가 생성될지도 모르는데..
> 무작정 이벤트프로시저를 미리 많이 만들어놓을 수도 없고...
> 아~~정말 난감합니다..
>
> 고수님들의 도움이 절실히 필요합니다..앙~
> 플리~즈~~~~~~~~
>
>