Warum eine extra Funktion EndInitialize? Benutze den Destructor.
destructor destroy;override;
Und warum public? Für soetwas nutzt man den private Block. Die Datei zweimal einzulesen, halte ich für eine sehr unsaubere Lösung.
Du kannst natürlich auch neben Initialisiere eine weitere virtuelle Methode machen DatenLesen. Diese wird dann die StringList übergeben.
Delphi-Quellcode:
procedure TBase.Initialisiere(Dateinname: string);
var SL: TSringlist;
begin
SL := TSringlist.Create;
SL.LoadFromFile(Dateiname);
DatenLesen(SL);
SL.Free;
end;
In Datenlesen werden dann die Variablen gefüllt und diese Funktion kann in abgeleiteten Klassen überschrieben werden.
Ist meiner Meinung nach die sauberste Lösung.