Anschließend an das gestrige Problem, kommt nun wieder eines mit der Property.
Ich habe eine Property, die so aussieht:
property OperatorChars: TCharArray read fOperatorChars write SetOperatorChars;
fOperators ist vom Typ TCharArray, was ein array of char ist.
Die Prozedur SetOperatorChars sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TTokens.SetOperatorChars(Index: integer; Value: char);
begin
if (Index > -1) and (Index <= high(fOperatorChars)) then
fOperatorChars[Index] := Value
else if Index = high(fOperatorChars) + 1 then
AddOperatorChar(value);
end;
AddOperatorChar macht übrigens nichts anderes, als Speicher für das Array zu reservieren und dann einen neuen Array-Index zu beschreiben.
Ich bekomme jetzt bei der Property den Fehler "Inkompatible Typen". Wenn ich die SetOperatorChars-Methode durch die Feldvariable fOperatorChars ersetze, funktioniert es. Allerdings möchte ich das in einer Methode haben, damit ich den Speicher vernünftig reservieren kann, ohne jedes mal erneut SetLength aufzurufen