0
私はデルファイRAD私は今のDelphi 7で同じコードを必要とする10.1TMonitor(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;
で動作するコード(Singleton-パターン)を持っていますが、コンパイラは、「TMonitorが知られていない」と述べました。
どこでTMonitorを見つけることができますか、または代替機能でどのように置き換えることができますか?
事前にお読みいただきありがとうございます。
代わりにTCriticalSectionを使用してください... – whosrdaddy
私は、モニタが利用可能であっても、このためにクリティカルセクションを使用します。 –
または「固定」TCriticalSection、[Fixing TCriticalSection](https://www.delphitools.info/2011/11/30/fixing-tcriticalsection/)。 –