problem wyglada tak:
Mam 3 klasy realizujące "mechanizm wewnętrzny" programu - nie widać ich.
Konkretniej:
type TVector = class(TObject)
private
public
constructor Create(AOwner: TComponent);
procedure czysc; //zerowanie wektora
end;
implementation
constructor TVector.Create(AOwner: TComponent);
begin
czysc;
end; //Create;
z wektorow korzysta kolejna klasa:
type ISystem = array of TVector;
TSI = class(TObject)
private
klasy : ISystem;
ilosc : integer; // ilosc klas
procedure przedluz; //przedluzenie tablicy klas
public
constructor Create(AOwner: TComponent);
end;
implementation
constructor TSI.Create(AOwner: TComponent);
begin
ilosc := 0;
przedluz;
end; //Create;
a z niej nastepna:
type TInterSI = class(TObject)
private
system : TSI;
public
constructor Create(AOwner: TComponent);
procedure wczytaj(c:char; AOwner: TComponent); //wczytanie danych do Systemu
end;
implementation
constructor TInterSI.Create(AOwner: TComponent);
begin
system.Create(AOwner);
wczytaj('a', AOwner);
end; //Create;
Do tego momentu wszystko kompilowało się bez problemu.
Obiekt klasy TInterSI ma byc tworzony na samym poczatku dzialania programu, wiec w formularzu glownym mam:
procedure TFormGlowny.FormCreate(Sender: TObject);
var o:TComponent;
begin
SysInf.Create(o);
end; //FormCreate
Analogicznej konstrukcji używałam już kiedyś w Delphi 3, tam to działało, a teraz mam
"exception with message 'Access Violation' "
przy kazdej probie uruchomienia.
Wywala sie w konstruktorze klasy TInterSI.
Próbowałam wywoływać SysInf.Create z self i nil - efekt ten sam.
To z czym wywołać ten konstruktor?