是这样的代码:(主要)
Player=class
Public id,health,top,left,pos:byte;
Public clist:array[1..9] of byte; //持有的牌列表
end;
Var
list:array[1..4] of Player;
…………………………
for i := 1 to 4 do
for j := 1 to 9 do list[i].clist[j]:=0;
为什么报错在最后一句???
First chance exception at $005CD630. Exception class $C0000005 with message 'access violation at 0x005cd630: write of address 0x00000009'. Process Programmer_Card.exe (5216)
Delphi这个程序运行为什么出错啊???
答案:2 悬赏:60 手机版
解决时间 2021-02-18 13:28
- 提问者网友:我没有何以琛的痴心不悔
- 2021-02-18 02:34
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-02-18 02:44
你没有把物件建构起来...
for i := 1 to 4 do
begin
if ( list[i] = nil )then
list[i] := Player.Create( );
for j := 1 to 9 do
list[i].clist[j]:=0;
end;
所以程式结束时在 OnDestroy 事件加入
for i := 1 to 4 do
begin
if ( list[i] <> nil )then
list[i].Free;
end;
for i := 1 to 4 do
begin
if ( list[i] = nil )then
list[i] := Player.Create( );
for j := 1 to 9 do
list[i].clist[j]:=0;
end;
所以程式结束时在 OnDestroy 事件加入
for i := 1 to 4 do
begin
if ( list[i] <> nil )then
list[i].Free;
end;
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-02-18 03:13
没有安装delphi7的不能运行,安装了的就能运行,这是因为数据库需要delphi自己带的bde文件。 --delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布bde(borland database engine),否则会引起错误“a error occurred while attempingto initilize borland database engine(error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现bde管理程序器需要9m之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简bde的。 首先来看看bde目录中的文件,所有文件确实有近9m大吧。不过有些可能是用不到的,关键文件的作用可参见bde32.hlp中“introduction to borland database engine”下的“core bde files”,其中列出了bde的关键文件及其作用,可以以此作为依据来尝试精简bde驱动程序。下面是各个文件的作用: 一、不可缺少的文件 ---- blw32.dll:语言驱动函数库。 ---- idapi32.dll:bde基本函数库。 ---- fareast.bll、usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。 ---- idr20009.dll:错误信息库。 二、数据库驱动程序(根据需要选择一个或多个) ---- idasci32.dll:ascii文本数据库驱动程序函数库,如果不用ascii文本数据库,可以不要。 ---- iddao32.dll:access数据库驱动程序函数库,如果不用access数据库,可以不要。 ---- iddbas32.dll:dbase数据库驱动程序函数库,如果不用dbase数据库,可以不要。 ---- idodbc32.dll:odbc数据库驱动程序函数库,如果不用odbc数据库,可以不要。 ---- idpdx32.dll:paradox数据库驱动程序函数库,如果不用paradox数据库,可以不要。 三、其它驱动程序和配置文件(根据需要选择一个或多个) ---- idbat32.dll:批操作驱动程序函数库,如果不用tbatchmove控件或dbibatchmove类函数,可以不要。 ---- iddr32.dll:data repository驱动程序函数库,如果不用data repository功能,可以不要。 ---- idprov32.dll:bde dataset provide驱动程序函数库,如果不用tprovider控件,可以不要。 ---- idqbe32.dll:qbe驱动程序函数库,如果不用query by example,可以不要。 ---- idsql32.dll:sql查询驱动程序函数库,如果不用tquery进行查询,可以不要。 ---- idapi32.cfg:bde配置文件,如果程序中没有特殊要求,可以不要。也可以在bde管理器中设置正确后再分发。 四、其它文件(一般不用) ---- bde32.hlp、bde32.cnt:bde帮助文件,可以不要。 ---- bdeadmin.exe、bdeadmin.hlp、bdeadmin.cnt:bde管理器及帮助文件,如果不会发生要求软件用户自己配置bde的情况时,可以不要。 ---- 其它*.bll:其它国家和地区的语言驱动程序,可以不要。 ---- databump.exe、databump.hlp、databump.cnt:数据库数据转移工具及帮助文件,可以不要。 ---- localsql.hlp、localsql.cnt:sql查询语句帮助文件,可以不要。 ---- sqllnk32.hlp、sqllnk32.cnt:sql连接帮助文件,可以不要。 ---- 在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用tregfile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在): ---- 数据驱动程序所在目录的设置: ---- hkey_lo
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯