Hallo HeinzJ,
der Fehler bei solchen "völlig" unerklärbaren Fehlern, sitzt meistens VOR dem Computer
Jetz änder Deine Klasse mal, und prüfe ob vielleicht eine Nachfolgende Klasse oder irgendjemand anderes die Variable ändert
Denn ich vermute, genau deswegen hast Du die Variablen im protected Teil..
Delphi-Quellcode:
AClass =
class(TObject)
strict private // oder nur private
FHasReadRelationListFromDB : boolean;
function GetiNumMembers: smallint;
protected
FRelationList: TStringList;
public
constructor Create(X:
array of const);
property HasReadRelationListFromDB: Boolean
read FHasReadRelationListFromDB;
property RelationList: TStringList
read GetRelationList;
property NumberOfMembers: smallint
read GetiNumMembers;
end;
implementation
function AClass.GetRelationList: TStringList;
begin
if not FHasReadRelationListFromDB
then // jetzt wird es gehen :-)
begin
FHasReadRelationListFromDB := true;
// << Diese Zeile wird nie erreicht (jetzt schon)
FRelationList := TStringList.Create;
// read someting from a db.
end;
Result := FRelationList;
end;
im übrigen, wenn Du die Variable nur als "Information" brauchst, ob die List schon da ist, kannst Du auch mit
Delphi-Quellcode:
if not assigned(FRelationList) then begin
FRelationList := TStringList.Create;
end;
Result := FRelationList;
die Variable sparen
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.