Da liegt das Problem aber in der Implementierung des Setters:
Delphi-Quellcode:
procedure TFDFix.SetActive(
const Value: Boolean);
begin
if Value = FActive
then
WriteLn('
Erwarte das Unerwartete ;)')
// In dieser Zeile könnte z.B. etwas wichtiges gemacht werden, was einen Fehler verhindert.
else
FActive := Value;
end;
begin
try
WriteLn('
Start');
FDFix := TFDFix.Create;
try
(* ... *)
finally
WriteLn('
Ende');
FDFix.Free;
end;
ReadLn;
except
on E:
Exception do
WriteLn(E.ClassName, '
: ', E.
Message);
end;
end.
Das sollte man eigentlich immer so machen, um derlei Probleme zu vermeiden:
Delphi-Quellcode:
procedure TFDFix.SetActive(
const Value: Boolean);
begin
if Value = FActive
then
Exit
else
begin
FActive := Value;
try
WriteLn('
Start');
FDFix := TFDFix.Create;
try
(* ... *)
finally
WriteLn('
Ende');
FDFix.Free;
end;
ReadLn;
except
on E:
Exception do
WriteLn(E.ClassName, '
: ', E.
Message);
end;
end;
end.
(Hier im Browser editiert, daher bitte die Einrückungen dazu denken)