这有点令人困惑,但会尽力解释它。请询问您是否需要更多详细信息。
首先,我有一个名为TPlayers
Like so 的课程。
TPlayers = class
Private
p : array[1..20] of TStringList;
function GetPlayer(i:integer): TStringList;
Public
Property player[i : integer] : TStringList read GetPlayer;
constructor Create; virtual;
implementation
uses
main;
{constructor}
constructor TPlayers.Create;
begin
p[1] := TStringList.Create;
p[2] := TStringList.Create;
p[3] := TStringList.Create;
p[4] := TStringList.Create;
p[5] := TStringList.Create;
p[6] := TStringList.Create;
end;
function TPlayers.GetPlayer(i: integer): TStringList;
begin
Result := p[i];
end;
我现在必须FTherePlayers := TPlayers.Create
创建类。我第一次像这样添加到字符串列表
FTherePlayers.Player[strtoint(name2)].Add('posx='+inttostr(posL.x));
或取出变量
FTherePlayers.Player[1].Add('posx=15');
这似乎很好,但接下来我尝试像这样更新它
FTherePlayers.Player[strtoint(ID)].Values['posx='] := xpos;
或取出变量
FTherePlayers.Player[1].Values['posx='] := 12;
但是然后我在更改它后检查该值,它仍然显示 15,因此当我这样做时
showmessage(fthereplayers.player[1].Values['posx']);
它返回 15 但应该是 12。知道为什么它没有改变吗?谢谢格伦