首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

动态生成的panel怎么写事件代码

2012-02-06 
动态生成的panel如何写事件代码procedure TForm1.Button2Click(Sender: TObject)varpan:array of array o

动态生成的panel如何写事件代码
procedure TForm1.Button2Click(Sender: TObject);
var
  pan: array of array of Tpanel;
  x,y,m,n: integer;
begin
  m := strtoint(edit1.Text); //行数
  n := strtoint(edit2.Text); //列数
  SetLength(pan,m);
  for x := 0 to m-1 do
  begin
  SetLength(pan[x],n);
  for y := 0 to n-1 do
  begin
  pan[x,y] := Tpanel.Create(self);
  pan[x,y].parent := Panel2;
  pan[x,y].Left := y*30;
  pan[x,y].Top := x*30;
  pan[x,y].Height := 30;
  pan[x,y].Width := 30;
  pan[x,y].Caption := inttostr(x) + '_' + inttostr(y);
  pan[x,y].Color := clskyblue;
  // pan[x,y].OnClick := panClick;

  end;
  end;

end;

比如让被选中的panel变成红色 还有就是用鼠标拖可以选择多个panel让其全变成红色

[解决办法]
最好先放个panel,然后事件生成代码。
写好测试好删除panel,留下代码。

用TPanel(sender).name或者tag区分之。
[解决办法]
所谓的“事件”,其实就是一个对象的方法,当要触发事件的时候,这个方法就会被调用,跟回调函数的原理是一样的。

所以只要你的方法的声明,和事件所声明的一样,就可以通过代码直接进行动态赋值
[解决办法]
TPanel提供了方法指针,你只要写好了赋值给它就好了
[解决办法]
// pan[x,y].OnClick := panClick;

可能是你没写panClick过程,按foxyy8888的,先放个panel,然后事件生成代码。写好测试好删除panel,留下代码。再用TPanel(sender).name或者tag区分之。

热点排行