tablica obektów i jej elementy

0

mam taką klase ( a raczej jej kawałek ):
[code]
type
TUnit = class

public
HP : Byte;
Armor : Byte;
Power : Byte;
Speed : Byte;
Attack_speed : integer;

 IsAlive : boolean;   
 IsAttack : boolean;  
 PosX, PosY : Byte;   
 Graph : TBitmap;    
 ID : Integer;        
 Active : boolean;   
 Typ : Byte;          

 User : Byte;  // czy dana jednosta jest nasza czy wroga

 procedure Draw( posx, posy : integer);

 procedure CreateUnit(id : integer; Typ : Byte);
 procedure DestroyUnit(id : integer);

end;
[/code]

i potem deklaruje ( chyba dobrze ) tablice obirktow tej klasy:
[code]

Units : array[0..200] of TUnit;
[/code]

Przyjmijmu teraz że kazde Units[n] to jedna jednostka, teraz jak bym chcial przelecieć przez wszystkie elementy tablicy i ustawić im poszczególne zmienne to robie coś takiego:

[code]
for i := 0 to 200 do
begin
Units[i].ID := i;
Units[i].Active := false;
Units[i].IsAlive := false;
Units[i].PosX := 0;
Units[i].PosY := 0;
end;[/code]

Kompiluje kod i jest ok, tylko jak uruchamiam program to wyskakuje jakiś error Od razu przy lini "Units[i].ID := i;" i kolejnych, coś tutaj źle robie?

0

Może zamiast klasy wstaw record .

// jak się nie znasz, to się nie odzywaj [krzyk] - ŁF
// acha - popraw sobie stopkę, masz tam okropny błąd stylistyczny! :-8 - ŁF

0

a w rekordach mogą być procedury i funkcje?

0

a w rekordach mogą być procedury i funkcje?

Nie ale możesz zrobić klase z procedurami i record z zmiennymi.

0

Pewnie błąd "Access Violation" lub podobny. Na początku kodu w pętli wstaw jeszcze Units[i]:=TUnit.Create; Żeby coś zmieniać trzeba najpierw utworzyć.

0

my_nick THX!!!! pomoglo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1