Okay, das sind Auszüge aus der
Unit, die unter anderen linked list units, den Fehler verursacht.
Delphi-Quellcode:
Unit LanguageHandler;
INTERFACE
Uses SysUtils, TokenString;
Type
pLDEntry = ^LDEntry;
LDEntry =
Record
Index : LongInt;
ID,
Value,
Reason :
String;
Next : pLDEntry;
End;
tLangDef =
Class
Private
Items : pLDEntry;
Counter : LongInt;
Tokens : tTokenString;
Procedure Parse ( FN, Language :
String; Rookie : Boolean );
Procedure Add ( ID, Value, Reason :
String );
Procedure Remove ( Idx : LongInt );
Public
Error : Boolean;
Constructor Init;
Destructor Done;
Procedure Build ( Language :
String; Rookie : Boolean );
Function Get ( ID :
String ) :
String;
Function GetByIndex ( Idx : LongInt ) : LDEntry;
Function IsReason ( ID :
String ) : Boolean;
Function GetReason ( ID :
String ) :
String;
Procedure Flush;
Procedure Debug;
End;
IMPLEMENTATION
...
Constructor tLangDef.Init;
Begin
Counter := 0;
Error := False;
Tokens := tTokenString.Init;
Items :=
Nil;
End;
Destructor tLangDef.Done;
Begin
Flush;
Tokens.Done;
End;
Procedure tLangDef.Add ( ID, Value, Reason :
String );
Procedure AppendItem (
Var ItemList : pLDEntry; Item : pLDEntry );
Begin
If ItemList =
Nil Then ItemList := Item
Else
Begin
If ItemList^.Next =
Nil Then ItemList^.Next := Item
Else AppendItem ( ItemList^.Next, Item );
End;
End;
Var Item : pLDEntry;
Begin
New ( Item );
Item^.
Index := Counter;
Item^.ID := ID;
Item^.Value := Value;
Item^.Reason := Reason;
Item^.Next :=
Nil;
AppendItem ( Items, Item );
Inc ( Counter );
End;
{
Bei folgender Funktion, wird durch das Statement "If ItemList <> Nil Then" die Exception verursacht.
}
Function tLangDef.Get ( ID :
String ) :
String;
Function SearchItem (
Var ItemList : pLDEntry; ID :
String ) :
String;
Begin
If ItemList <>
Nil Then
Begin
If ItemList^.ID = ID
Then SearchItem := ItemList^.Value
Else SearchItem := SearchItem ( ItemList^.Next, ID );
End;
End;
Begin
Get := SearchItem ( Items, UpperCase(ID) );
End;
.
.
.
Begin
End.
Ich nehm mal an, daß die Fehlersuche für euch unmöglich sein dürfte, weil ich ansonsten das gesamte Projekt hochladen müßte, es sei denn oben befindet sich was vollkommen Offensichtliches, was mir entgangen ist.
Nachdem ich das Projekt gerade auf Vermutungen hin umgeschrieben habe, befindet sich die
Exception nun im Laufzeit-Code, der von Virtual Pascal generiert wird. Es hängt nun mit der Speicher-Allokierung zusammen.
Okay... ich bin so richtig schön ratlos.
[edit=FuckRacism][delphi] Syntax Mfg, FuckRacism[/edit]