Einzelnen Beitrag anzeigen

Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#16

Re: BUG? - Boolean Variable wird willkürlich auf true gesetz

  Alt 28. Apr 2009, 12:26
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.
  Mit Zitat antworten Zitat