控件数组问题!

pasu 2001-04-17 11:55:00
我的程序
unit MS_Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, ExtCtrls;

type
Tfrm_main = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N3: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
Button1: TButton;
N10: TMenuItem;
Edit1: TEdit;
Edit2: TEdit;

procedure N6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BtnaryClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
frm_main: Tfrm_main;
Btnary: array of TButton;
implementation

{$R *.DFM}

procedure Tfrm_main.N6Click(Sender: TObject);
begin
Close;
end;



procedure Tfrm_main.Button1Click(Sender: TObject);
var
i,n,v,x: integer;
begin
v :=strtoint(edit1.Text);
x :=strtoint(edit2.text);
setlength(btnary,v*x);
for n:=0 to x do
begin
for i:=0 to v do
begin
Btnary[i]:=TButton.Create(self);
Btnary[i].Parent:=self;
Btnary[i].OnClick :=BtnaryClick;
Btnary[i].Top:=59+i*17;
Btnary[i].Left:=66+n*18;
Btnary[i].Width:=18;
Btnary[i].Height:=17;
Btnary[i].tag:=x+v;

end;
end;
end;

procedure Tfrm_main.BtnaryClick(Sender: TObject);
var
i: integer;
begin
i :=i+1;
end;

end.

编译的时候提示 [hits] 指定值"i"永不可用
我在 i :=i+1; 处设断点结果不运行
请问是什么原因?

...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WuHeHai 2001-04-17
  • 打赏
  • 举报
回复
或者加一句使用的语句:
begin
i :=i+1;
Showmessage(IntToStr(i));
//Label1.Caption := IntToStr(i);这句也行,只要把i变量利用起来
end;
//不过你的i变量未初始化哦!
WuHeHai 2001-04-17
  • 打赏
  • 举报
回复
Complier页中的Optimization复选框去掉
WuHeHai 2001-04-17
  • 打赏
  • 举报
回复
Project | Option...
holyfire 2001-04-17
  • 打赏
  • 举报
回复
是啊,你的i一点也没用到,编译器优化时就将他去掉了,除非再来一个
j = i + 1;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧