📄 s2.tools.ts2dictitem.pas
字号:
unit S2.Tools.TS2DictItem;
interface
uses
S2.Core.IS2Cloneable, S2.Tools.IS2DictItem;
type
TS2DictItem = class(TInterfacedObject, IS2Cloneable, IS2DictItem)
private
Name: string;
O: TObject;
_IsClone: Boolean;
public // S2.Core.IS2Cloneable
function Clone: IS2Cloneable; virtual;
function IsClone: Boolean; virtual;
public // S2.Tools.IS2DictItem
function GetName: string; virtual;
function GetObject: TObject; virtual;
public
constructor Create(O: TObject; const Name: string);
destructor Destroy; override;
end;
implementation
uses
SysUtils;
{ TS2DictItem }
function TS2DictItem.Clone: IS2Cloneable;
var
NewObject: TS2DictItem;
begin
NewObject := TS2DictItem.Create(O, Name);
NewObject._IsClone := True;
Result := NewObject;
end;
function TS2DictItem.GetName: string;
begin
Result := Name;
end;
function TS2DictItem.GetObject: TObject;
begin
Result := O;
end;
constructor TS2DictItem.Create(O: TObject; const Name: string);
begin
Self.O := O;
Self.Name := Name;
_IsClone := False;
end;
function TS2DictItem.IsClone: Boolean;
begin
Result := _IsClone;
end;
destructor TS2DictItem.Destroy;
begin
if not IsClone then FreeAndNil(O);
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -