배열로 버튼을 만들고 팝업 메뉴를 연결했거든요
예)
var
B : Array[1..10] of TButton;
다른이벤트에서
B[I]:= TButton.Create(Self);
.....
B[I].PopupMenu:= PopupMenu1;
이렇게 하면 버튼 10개에 모두 같은 팝업메뉴가 연결되잖아요.
그리고 팝업메뉴에 목록을 만들고 이벤트를 실행시킬때 어떤 버튼에서 온 이벤트인지
알려면 어떻게 해야 하나요?
예를 들어 3번째 버튼에서 팝업메뉴중 목록을 클릭했을때, 그 버튼의 Caption이 바뀌게
하고 싶다면...
이벤트에서 (Sender as TButton) 라고 했더니 에러가 나더군요
B[0]:= TButton.Create(Self);
B[0].Tag := 1
...
...
B[0]:= TButton.Create(Self);
B[0].Tag := 2
...
...
...
...
var
c: TButton;
begin
c := TButton(Sender);
if c.Tag = 0 then ...
if c.Tag = 1 then ...
if c.Tag = 2 then c.Caption := '3';
...
김윤경 wrote:
> 배열로 버튼을 만들고 팝업 메뉴를 연결했거든요
> 예)
> var
> B : Array[1..10] of TButton;
>
> 다른이벤트에서
> B[I]:= TButton.Create(Self);
> .....
> B[I].PopupMenu:= PopupMenu1;
>
> 이렇게 하면 버튼 10개에 모두 같은 팝업메뉴가 연결되잖아요.
> 그리고 팝업메뉴에 목록을 만들고 이벤트를 실행시킬때 어떤 버튼에서 온 이벤트인지
> 알려면 어떻게 해야 하나요?
> 예를 들어 3번째 버튼에서 팝업메뉴중 목록을 클릭했을때, 그 버튼의 Caption이 바뀌게
> 하고 싶다면...
>
> 이벤트에서 (Sender as TButton) 라고 했더니 에러가 나더군요
>