0
다소 혼란 스럽지만 설명하는 것이 가장 좋습니다. 자세한 내용이 필요한지 물어보십시오.삭제, 추가, 편집 stringList
우선 내가 지금 클래스를 만들 FTherePlayers := TPlayers.Create
이
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;
TPlayers
과 같이라는 클래스를 ..을. 내가 너무
FTherePlayers.Player[strtoint(name2)].Add('posx='+inttostr(posL.x));
처럼 또는 변수로 stringlist에 추가 처음이 괜찮을 것 같다
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라고하지만 왜 changeing하지 그 어떤 생각 (12)해야 하는가? 감사 글렌
당신은 FTherePlayers.Player [strtoint (ID)] '의 오타가 값 ['POSX = '] : = xpos;', 그것은'FTherePlayers.Player [strtoint (ID)]이어야합니다. 값 [ 'posx'] : = xpos;' 그러나 문자열 목록을 노출하는 것은 좋지 않습니다. 예를 들어 TPlayers.AddPlayer와 같은 추가 메소드를 생성하는 것이 좋습니다. 'TPlayers.PlayerPosition [x]', 내부 문자열리스트의'Values'에 접근합니다. – TLama
arg, 어떻게 보지 못했습니까? 또한 고마워, 난 준비가 addplayer하지만 난 FTherePlayers.Player [x]는 플레이어와 .p [x] 따라서 괜찮아요 액세스 개인에 의해 액세스하지만 가치를 액세스 할 플레이어 위치를 추가하는 것이 어려울 것이라고 생각 그 점을 보지 못했습니다.하지만 델파이와 그 공통 생성자에 대해 아직 새로운 점이 있습니다. –
delphi2010 이상을 사용하는 경우 Generics.Collections를 추가하십시오. TList, TObjectList, TDictionary 및 TObjectDictionary – Ravaut123