Welcher Fehler denn genau?
Wenn ich mit dem Debugger durchgehe, und von Zeile
BufferArray:= DateiVerwaltung.DateiLaden;
weiter zu
if high(BufferArray)<Index then
gehen will, verschwindet der Cursor, wie wenn man CTRL-R drücken würde (ich weiß nicht welcher Befehl das in Delphi ist). Danach kommt, wie gesagt, nichts und das Programm startet nicht bzw. bleibt hängen beim Start. Deswegen weiß ich auch nicht, was genau dann passiert. Ich kann mal den Code posten, wo die Steuerungsklasse instanziert wird:
Delphi-Quellcode:
procedure TVerwaltung.InfosLesen; //Die Verwaltungsklasse liest für sich aus einer 2. Datei Infos aus und packt sie in ein Array, da liegt auch nicht das Problem
var DatIndex, Index: integer;
InfoDatensatz: TInfos;
begin
Index:= System.FileSize(InfoDatei)-1;
if Index<0 then exit
else begin
DatIndex := 0;
repeat
seek(InfoDatei, DatIndex);
read(InfoDatei, InfoDatensatz);
SetLength(Infoarray, DatIndex+1);
//infos werden ausgelesen
InfoArray[DatIndex].Var1:=InfoDatensatz.Var1;
{usw}
Steuerungsklasse:= TSteuerungsklasse.Create(DatIndex, StrToInt(InfoArray[DatIndex].Var1));//Zwei Parameter werden übergeben
SteuerungsObjektList.Add(Steuerungsklasse);
DatIndex:=DatIndex+1;
until eof(InfoDatei);
end;
end;
so wird praktisch für jeden Infoarrayeintrag parallel ein Listeneintrag mit dem Steuerungsobjekt gemacht.
Hier noch die Create- Methode der Steuerungsklasse:
Delphi-Quellcode:
inherited Create;
Index:= aIndex; //übegeben durch Parameter
FVar1:= aVar1;
{weitere Standardwerte werden initialisiert}
//Dann wird die Oben genannte Methode aufgerufen
DatenLaden;