动态创建怪事,又是Delphi的BUG吗?

discoboy 2004-02-27 12:07:31
如下一段代码:
unit template;

interface

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

type
TfrmTemplate = class(TForm)
Button1: TButton;
Button2: TButton;

procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
ImageArray: Array[0..5] of TImage;
public
{ Public declarations }
end;

var
frmTemplate: TfrmTemplate;
I,J,Flag :Integer;

implementation

{$R *.dfm}

procedure TfrmTemplate.Button1Click(Sender: TObject);
begin
ImageArray[Flag] := TImage.Create(self);
ImageArray[Flag].Canvas.Brush.Color := clRed;
ImageArray[Flag].Canvas.FillRect(ImageArray[Flag].ClientRect);
ImageArray[Flag].Left := I + 10;
ImageArray[Flag].Top := J + 10;
ImageArray[Flag].Width := 300;
ImageArray[Flag].Height := 400;
ImageArray[Flag].Parent := Self;
Inc(Flag);
I := I + 20;
J := J + 20;
end;

procedure TfrmTemplate.FormShow(Sender: TObject);
begin
I := 0;
J := 0;
Flag := 0;
end;

procedure TfrmTemplate.Button2Click(Sender: TObject);
begin
showmessage(inttostr(Flag));
end;

end.
程序居然可以创建到ImageArray[6]以上不出错,我分明是设定:ImageArray: Array[0..5] of TImage,何解?
...全文
45 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复

5,386

社区成员

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

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