Delphi有控件数组吗?(100分)

B

borky

Unregistered / Unconfirmed
GUEST, unregistred user!
假如我在panel控件中生成了一个二维按钮控件数组,怎样得知我在上面点击了
哪个按钮?(我是想编写一个模拟windows的扫雷游戏时解决不了这个问题,如
果知道哪里有扫雷for Delphi的源程序下载,随便也告诉我,谢谢大虾们帮助)
 
OnClick事件中是有Sender的
 
你用Button是相当占用资源的,你试试就知道了,刷新的时候会巨慢。
 
扫雷游戏还用Button干嘛?看看 D3入门到精通 里的那个简单例子吧
 
用一个TGriphicControl不就行了
 
你非要用Button的话,可以这样做:
var
btn:TButton;
begin
btn:=Sender AS TButton;
//btn这就是你要的按钮,按钮的所有属性方法它都有
end;
 
你可以动态创建Button控件,并为按钮设置事件。
有以下几点需要注意:
1、声明控件数组。
var arr_btn:array of TButton;
2、创建控件。
SetLength(arr_btn,10);
For i:=0 to 9do
begin
arr_btn := TButton.Create(Form1);
With arr_btndo
begin
Parent := Form1;
Top := ...;
Left := ...;
Width := ...;
Height := ...;
Caption := ...;
Visible := true;
OnClick := ButtonClickSimple;
Tag := i;
end;
end;
3、编写按钮的处理事件。
procedure TForm1.ButtonClickSimple(Sender: TObject);
var i:integer;
begin
i := TButton(sender).Tag;
Case i of
0: ......;
1: ......;
......
......
end;
end;
注意:这个过程需要在interface中声明。
由于时间关系,以上只是简单的原理说明,不过按照此法绝对可以达到你想要
的目的,如果有什么问题,欢迎来信探讨。
(四四方方:raindrop2000@263.net)
 
如果是要控件数组的话,参考一下
VCL代码中,TObject的Components属性的定义吧。
 
多人接受答案了。
 

Similar threads

回复
0
查看
818
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部