У меня есть код (Singleton- шаблон), который работает с Delphi RAD 10,1Где я могу найти TMonitor (Delphi 7) или как его заменить альтернативной функцией?
type
TSharedData = class
private
FPOL: integer;
class var FUniqueInstance: TSharedData;
procedure SetFPol(const Value: integer);
constructor Create;
public
class function GetInstance: TSharedData;
property POL: integer read FPOL write SetFPol;
end;
var
Key: TObject;
implementation
{ TSharedData }
constructor TSharedData.Create;
begin
SetFPol(1);
end;
class function TSharedData.GetInstance: TSharedData;
begin
TMonitor.Enter(Key); // <-- error here
try
if FUniqueInstance = nil then
begin
FUniqueInstance := TSharedData.Create;
end;
finally
TMonitor.Exit(Key);
end;
Result := FUniqueInstance;
end;
procedure TSharedData.SetFPol(const Value: integer);
begin
FPOL := Value;
end;
initialization
Key:= TObject.Create;
finalization
Key.Free;
мне нужно сейчас тот же самый код в Delphi 7. Но компилятор сказал, «TMonitor не известно».
Где я могу найти TMonitor или как заменить его альтернативной функцией?
Я благодарю вас за любую информацию.
Используйте TCriticalSection вместо ... – whosrdaddy
Я, я бы использовал критический раздел для этого, даже если бы монитор был доступен. –
Или «фиксированный» 'TCriticalSection', [Fixing TCriticalSection] (https://www.delphitools.info/2011/11/30/fixing-tcriticalsection/). –