Tablica dynamiczna jako pole w klasie

0

Witam mam taki kod:

PSerwer = ^TSerwer;  
TSerwer = record
  Host:string;
  Nazwa:string;
  Predkosc:integer;
  DebrisObrony:integer;
  DebrisFloty:integer;
  ACS:boolean;
end;

TListaSerwerow = class (TObject)
  private
    FListTab: array of PSerwer;
    procedure DodajSerwer();
  public
    constructor Create(NazwaPliku:string);
    destructor Destroy; override;
end;

oraz w konstruktorze chce przydzielić tej tablicy FListTab jakiś rozmiar dobie to w ten sposób:
SetLength(FListTab,500);
i otrzymuje AV.
Bez klasy jeśli zadeklaruje FListTab jako zmienna lokalna wszystko jest cacy. Dlaczego tak się dzieje?

0

Spróbuj

SetLength(@FListTab,500);
0

Incompatible types :/

0

A stworzyłeś w ogóle ten obiekt?

Btw. Może mi ktoś wytłumaczy co znaczy AV?

0

AV - Access Violation
Naruszenie pamięci, coś takiego...

0

napisałem, że ustawiam rozmiar tablicy w konstruktorze, wywołuje też inheritet od TObject choć nie wiem czy ma to jakieś znaczenie.
AV = Access Violation screen w zalaczniku

0

Faktycznie nie stworzyłem obiektu. Problem rozwiązany głupio się przyznać, ale zamiast
ListaSerwerow:=TListaSerwerow.Create(SciezkaPlikuSerwerow);
napisałem
ListaSerwerow:=ListaSerwerow.Create(SciezkaPlikuSerwerow);
dzięki za pomoc i sory za zamieszanie :P

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