Und die Synchronisationsobjekte (unter System.SyncObjs) leiten sich doch alle von einer gemeinsamen Oberklasse ab. Wenn du später eine die TCriticalSection gegen etwas anderes austauschen willst, ist das nur eine Sache- Ich hätte Sir Rufos Ansatz noch um eine Typdefinition erweitert:
Delphi-Quellcode:
TFoo = class
protected type
TSyncObj = TCriticalSection;
private
FCS : TSyncObj;
FValue : string;
function GetValue : string;
procedure SetValue(const Value : string) : string;
public
constructor Create;
destructor Destroy; override;
property Value : string read GetValue write SetValue;
end;
Dann kannst du später alles in einer Zeile austauschen.