主题:谁能帮忙看下这个错误是怎么回事
简介:
窗体上有一个panel,有一个button(btn1)。
点击btn1后,在panel中生成10个image,10个speedbutton
speedbutton点击后消失(free掉的),露出底下的image。
问题:
speedbutton点击后,总有一个会报错,而且不同机器上报错的位置不同。
我自己机器上是左起第六个报错,同事机器有的是第六个有的是第五个
另外,本来窗体上有2个edit(没用到的),删除这2个edit后,再测试我的机器上变成第九个报错了。。。
代码如下,最好是直接下载附件看unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
pnlArea: TPanel;
btn1: TButton;
procedure btn1Click(Sender: TObject);
procedure btnallclick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
buttonArea:TSpeedButton;
ImgArea:TImage;
i:integer;
begin
for i:=1 to 10 do
begin
ImgArea:=TImage.create(Form1);
ImgArea.Parent:=pnlArea;
ImgArea.Top:=0;
ImgArea.Left:=23*i;
ImgArea.Name:='Img'+inttostr(i+1);
TImage(ImgArea).Picture.LoadFromFile('.\source\1.bmp');
buttonArea:=TSpeedbutton.create(Form1);
buttonArea.Parent:=pnlArea;
buttonArea.Top:=0;
buttonArea.Left:=23*i;
buttonArea.Name:='btn'+inttostr(i+1);
buttonArea.OnClick:=btnallclick;
end;
end;
procedure TForm1.btnallclick(Sender: TObject);
begin
// TSpeedButton(sender).Glyph.LoadFromFile('.\source\1.bmp');
TSpeedButton(Sender).Free;
end;
end.
窗体上有一个panel,有一个button(btn1)。
点击btn1后,在panel中生成10个image,10个speedbutton
speedbutton点击后消失(free掉的),露出底下的image。
问题:
speedbutton点击后,总有一个会报错,而且不同机器上报错的位置不同。
我自己机器上是左起第六个报错,同事机器有的是第六个有的是第五个
另外,本来窗体上有2个edit(没用到的),删除这2个edit后,再测试我的机器上变成第九个报错了。。。
代码如下,最好是直接下载附件看unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
pnlArea: TPanel;
btn1: TButton;
procedure btn1Click(Sender: TObject);
procedure btnallclick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
buttonArea:TSpeedButton;
ImgArea:TImage;
i:integer;
begin
for i:=1 to 10 do
begin
ImgArea:=TImage.create(Form1);
ImgArea.Parent:=pnlArea;
ImgArea.Top:=0;
ImgArea.Left:=23*i;
ImgArea.Name:='Img'+inttostr(i+1);
TImage(ImgArea).Picture.LoadFromFile('.\source\1.bmp');
buttonArea:=TSpeedbutton.create(Form1);
buttonArea.Parent:=pnlArea;
buttonArea.Top:=0;
buttonArea.Left:=23*i;
buttonArea.Name:='btn'+inttostr(i+1);
buttonArea.OnClick:=btnallclick;
end;
end;
procedure TForm1.btnallclick(Sender: TObject);
begin
// TSpeedButton(sender).Glyph.LoadFromFile('.\source\1.bmp');
TSpeedButton(Sender).Free;
end;
end.