Klasa i zapisywanie do zmiennej

0

Mam taką klasę

TKompy = class
    public


      procedure Inicjuj();
      procedure Zniszcz();

      function ReadKomp(ID: Integer): TKomp;
      procedure WriteKomp(ID: Integer; Data: TKomp);

      function KompArrayTORecord(A: TKomp): TRKomp;
      function KompRecordTOArray(A: TRKomp): TKomp;

      function SaveToFile(FileName: String): Integer;


    private
      SeparatorASCII : Integer;
      Tablica : array [0..3] of TKomp;
    protected

  end;

no i konkretnie mnie interesuje procedurka WriteKomp:

  procedure TKompy.WriteKomp(ID: Integer; Data: TKomp);
  begin
    Tablica[ID]:=Data;
  end;

no i moze do analizy sie przydac jeszcze klasa TKomp:

TKomp = array[0..6] of string;

teraz pytanie: gdzies w programie tworze sobie zmienna oparta o te klase:

var
  Kompy: TKompy;
  Data: TKomp;
begin
  // tu uzupelnia dane w tablicy Data
  Kompy.WriteKomp(0,Data);
end.

no i niestety program sie wywala. debbuger wskazuje ze instrukcja przypisania wartosci w procedurze WriteKomp cos sie wali. ale nie wiem czemu. Mam komunikat:

Exception EAccessViolation in module blablabla i tu cyferki

POwiedzcie mi co robię nie tak ze nie mozna zapisywac do takiej zmiennej - odczyt jest bezproblemowy (tzn. nie wystepuje blad)

Wiem ze musze cos z AlloCMem,a le za chiny z TABLICAMI mi nie wychodzi

0

każdą klasę przed użyciem trzeba zainicjować bądź stworzyć - użyj konstruktora (constructor + F1).

0

hmmm w pomocy nie znalazlem informacji jak zainicjowac konkretnie te tablice (tablice nie zmienna tekstowa czy inicjowanie na podstawie klasy macierzystej).
:d

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