【发布时间】:2013-04-22 19:27:08
【问题描述】:
我正在尝试创建一个数组来获取数据(我之前添加过),将其称为“GameMap[i, j, k].Items[m].Index”或“GameMap[i, j, k].Count"
我在 delphi 中的 type 部分如下所示:
type
TItemRec = record
Index: Integer;
Volume: Integer;
Count: Integer;
Id: string;
end;
TMApRec = record
ID: LongWord;
Count: integer;
Order1: integer;
Order2: integer;
Order3: integer;
Order4: integer;
Order5: integer;
Order6: integer;
Order7: integer;
Order8: integer;
Order9: integer;
Order10: integer;
Items: array[0..9] of TItemRec;
end;
TMap = class
GameMap : array[0..8,0..14,0..$12] of TMapRec;
例如,如果我现在这样做:
procedure TMap.Update;
var
i,j,k,m: integer;
begin
i:=0;
while i < 8 do
begin
j:=0;
while j < 14 do
begin
k:=0;
while k < $12 do
begin
m:= 0;
while m < 10 do
begin
showmessage('asdf');
GameMap[i,j,k].Items[m].Id:= (inttostr(i)+' '+inttostr(j)+' '+inttostr(k)+' '+inttostr(m));
showmessage((GameMap[i,j,k].Items[m].Id));
inc(m);
end;
inc(k);
end;
inc(j);
end;
inc(i);
end;
它只会显示第一个 showmessage('asdf'),但随后会崩溃 如果你想突出显示,这里有完整的代码http://pastebin.com/xfL94QXU
再次感谢你们的时间
【问题讨论】:
-
您确实需要花更多的精力来描述问题。 “它工作不正常,通常是错误”和“不允许我服用”并没有真正的帮助;除了您之外,它们对任何人都没有任何意义,因为我们看不到您的屏幕或读懂您的想法。请记住,除了您在此处告诉我们的信息外,我们对您的问题的信息为零;如果你没有清楚地解释问题,那么很难弄清楚如何解决它。
-
也许你忘记了 end,换句话说,它对我有用,例如:
GameMap[0,1,$2].Items[3].Id := 4;请重新格式化你的帖子以正确显示代码。 -
请看第一篇,我又写了一遍
-
您是否创建了 TMap 对象?您仍然没有显示所有相关代码。
-
“这里崩溃了”一点都不好。您需要提供完整的错误消息。
标签: arrays delphi delphi-xe2