动态数组控件释放问题 我这个alarmbutton是一个全局变量,在另一个unit里定义的,你说的指拥有者是什么意思是说它的作用域吗,还是.parent? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的写法是不正确的,应该这样: SetLength(alarmButton, alarmButtonColumn); for i := 0 to alarmButtonColumn - 1 do begin SetLength(alarmButton[i], alarmButtonRow); for j := 0 to alarmButtonRow - 1 do begin alarmButton[i][j] := BasicButton.Create(Form1); alarmButton[i][j].Parent := Form1; alarmButton[i][j].Top := 50 + j * 30; alarmButton[i][j].Left := 50 + i * 50; alarmButton[i][j].Caption := 'asdasd'; alarmButton[i][j].Show; end; end; 我不觉得你的程序和我的程序有什么区别啊,只是我把setlength(alarmButton[i],alarmButtonRow) 放在外面的循环里 并且,我的程序在运行中是没有问题的,可以生成控件,并且都可以使用(可根据onclick调用不同的东西),就是在关闭整个程序的时候会出现那个错误提示 怎么会没区别呢?更省事的写法。 SetLength(alarmButton, alarmButtonColumn,alarmButtonRow); for i := 0 to alarmButtonColumn - 1 do for j := 0 to alarmButtonRow - 1 do begin alarmButton[i][j] := BasicButton.Create(Form1); alarmButton[i][j].Parent := Form1; alarmButton[i][j].Top := 50 + j * 30; alarmButton[i][j].Left := 50 + i * 50; alarmButton[i][j].Caption := 'asdasd'; alarmButton[i][j].Show; end; 为什么我的写法没问题而你的写法有问题,请你仔细看一下Delphi中关于SetLength的帮助。 多谢了,不过我还是不明白我分两次SetLength()为什么会和你的一次setlength()和放在不同地方的setlength()会不同,难道这两种分配方法,引用位置会有不同吗? delphi 窗体重新构建或者说是恢复到刚打开时的样子 delphi 主从表保存问题 使用ADO连接恢复SQL数据库 紧急求助!!!!怎样把从服务器端下载的AxtiveXform程序插件中的数据库组件连接到远程服务器端的数据库上??解决问题者给高分!!! Delphi可否做出比较完善的图文混排? 各位关注关注,在线等待!! DllMain在Delphi中究竟怎么实现的?我怎么都不行 用什么控件能不通过BDE访问DBF库? ClientDataset如何取得中间层返回的2个记录集 请问这段登陆代码SQL语句是否正确? 有关COM组件的接口问题,高手请问题 关于防火墙
for i := 0 to alarmButtonColumn - 1 do
begin
SetLength(alarmButton[i], alarmButtonRow);
for j := 0 to alarmButtonRow - 1 do
begin
alarmButton[i][j] := BasicButton.Create(Form1);
alarmButton[i][j].Parent := Form1;
alarmButton[i][j].Top := 50 + j * 30;
alarmButton[i][j].Left := 50 + i * 50;
alarmButton[i][j].Caption := 'asdasd';
alarmButton[i][j].Show;
end;
end;
并且,我的程序在运行中是没有问题的,可以生成控件,并且都可以使用(可根据onclick
调用不同的东西),就是在关闭整个程序的时候会出现那个错误提示
更省事的写法。 SetLength(alarmButton, alarmButtonColumn,alarmButtonRow);
for i := 0 to alarmButtonColumn - 1 do
for j := 0 to alarmButtonRow - 1 do
begin
alarmButton[i][j] := BasicButton.Create(Form1);
alarmButton[i][j].Parent := Form1;
alarmButton[i][j].Top := 50 + j * 30;
alarmButton[i][j].Left := 50 + i * 50;
alarmButton[i][j].Caption := 'asdasd';
alarmButton[i][j].Show;
end;
请你仔细看一下Delphi中关于SetLength的帮助。
放在不同地方的setlength()会不同,难道这两种分配方法,引用位置会有不同吗?