procedure TForm1.formActivate(Sender: TObject);
var Y : integer;
begin
for y := 1 to stringgrid1.rowcount - 1 do
begin
StringGrid1.Objects[2, y] := Tbutton.Create(StringGrid1);
with Tbutton(StringGrid1.Objects[2, y]) do
begin
Parent := StringGrid1;
BoundsRect := StringGrid1.CellRect(2, y);
Width := StringGrid1.ColWidths[2];
Height := StringGrid1.RowHeights[2];
Caption := ' 삭제 ';
onclick := btnclick;
end;
end;
end;
procedure TForm1.btnclick(Sender: TObject);
begin
//여기서 각 버튼의 이벤트 처리방법
//showmessage('잘 눌렀습니다1');
//showmessage('잘 눌렀습니다2');
end;
설명: 위에 있는 소스의 내용은 스트링 그리드에 지정된 셀에 버튼을 동적으로 생성
시켰습니다. 그리고 버튼을 클릭 할때 마다 btnclick라는 이벤트를 타게 됩니다.
질문 : 여러개의 버튼은 모두 클릭했을때 btnclick이벤트를 타게 되는데 이 btnclick라
는 프로시저에서 어떤버튼이 클릭되었는지 즉 각각의 버튼을 클릭했을때 다른
message를 뿌려 주고자 합니다.
Case TButton(Sender).Tag OF
0: Begin
showmessage('버튼1');
End;
1: Begin
showmessage('버튼2');
End;
End;