Einzelnen Beitrag anzeigen

Custom

Registriert seit: 18. Aug 2007
Ort: Mainz
203 Beiträge
 
Delphi 7 Enterprise
 
#93

Re: [Game] 2.6D - Sandb(L)ox

  Alt 18. Feb 2008, 17:17
Zitat von xZise:
Zuerstmal hast du wohl eine "Feldklasse":
Delphi-Quellcode:
TBlock = class(TObject)
private
  FX, FY : Integer;
public
  property X : Integer read FX;
  property Y : Integer read FY;

  constructor Create(const AX, AY : Integer);
end;
Und entweder nimmst du einfach so eine Liste (Da das Object alles sein könnte, muss man sich sicher sein, was man da macht!):
Delphi-Quellcode:
FList : TObjectList;
[...]
FList := TObjectList.Create;
[...]
block := TBlock.Create([...]);
[...]
FList.Add(block);
[...]
Oder du erstellst dir selber eine Liste (aufwendiger ab im endeffekt Fehlersicherer):
Delphi-Quellcode:
TBlockList = class (TObject)
private
  FList : TObjectList;
  function GetBlock(AIndex : Integer) : TBlock;
  procedure SetBlock(AIndex : Integer; Value : TBlock);
public
  procedure Add(ABlock : TBlock);
  procedure Delete(ABlock : TBlock);

  property Bloecke[AIndex : Integer] : TBlock read GetBlock write SetBlock; default;

  constructor Create;
  destructor Destroy;
end;
Und fertig

Naja jedenfalls die Definition der Klassen.
Diese kannst du genauso wie eine TObjectList-Liste verwenden.

MfG
xZise

PS: Das "default;" hinter der Property bedeutet, dass man die nicht aufrufen muss. Wenn du das bei TStrings machst, machst du ja meißt "MyTStrings[<Zeile>]"
[Fehler] Unit1.pas(58): Undefinierter Bezeichner: 'TObjectList'
[Fehler] Unit1.pas(59): Undefinierter Bezeichner: 'TBlock'
[Warnung] Unit1.pas(68): Methode 'Destroy' verbirgt virtuelle Methode vom Basistyp 'TObject'
[Fataler Fehler] Unit1.pas(205): Verwendete Unit 'Physik.pas' kann nicht compiliert werden
  Mit Zitat antworten Zitat