📄 s2.tools.ts2clientdatamodellist.pas
字号:
unit S2.Tools.TS2ClientDataModelList;
interface
uses
Classes, S2.Tools.TS2Object, S2.Tools.IS2ClientDataModelList, S2.Tools.TS2ModelHandleList, S2.Model.TS2ClientDataModel;
type
TS2ClientDataModelList = class(TS2Object, IS2ClientDataModelList)
private
ModelList: TS2ModelHandleList;
StringList: TStringList;
SystemObject: TComponent;
public // S2.Tools.IS2ClientDataModelList
function Find(const Index: Integer): TS2ClientDataModel; overload; virtual;
function Find(const ModelName: string): TS2ClientDataModel; overload; virtual;
function GetCount: Integer; virtual;
procedure Add(ClientDataModelList: IS2ClientDataModelList); overload; virtual;
procedure Add(Model: TS2ClientDataModel; const ModelName: string); overload; virtual;
public
constructor Create(SystemObject: TComponent);
destructor Destroy; override;
end;
implementation
uses
S2.Tools.TS2Dict, S2.Core.IS2Cloneable, S2.Tools.TS2ModelHandle, S2.Model.TS2Model;
{ TS2ClientDataModelList }
procedure TS2ClientDataModelList.Add(ClientDataModelList: IS2ClientDataModelList);
var
SrcDict, TgrDict: TS2Dict;
begin
TgrDict := TS2Dict(ModelList);
SrcDict := TS2Dict(ClientDataModelList);
TgrDict.Add(SrcDict);
SrcDict := nil;
TgrDict := nil;
end;
procedure TS2ClientDataModelList.Add(Model: TS2ClientDataModel; const ModelName: string);
begin
StringList.Add(ModelName + '=' + Model.ClassName);
ModelList.Add(TS2ModelClass(Model));
end;
function TS2ClientDataModelList.Find(const Index: Integer): TS2ClientDataModel;
begin
Result := ModelList.Find(StringList.Values[StringList.Names[Index]]).GetModel as TS2ClientDataModel;
end;
constructor TS2ClientDataModelList.Create(SystemObject: TComponent);
begin
inherited Create;
Self.SystemObject := SystemObject;
ModelList := TS2ModelHandleList.Create(SystemObject);
StringList := TStringList.Create;
end;
destructor TS2ClientDataModelList.Destroy;
begin
ModelList.Free;
StringList.Free;
inherited;
end;
function TS2ClientDataModelList.Find(const ModelName: string): TS2ClientDataModel;
begin
Result := ModelList.Find(StringList.Values[ModelName]).GetModel as TS2ClientDataModel;
end;
function TS2ClientDataModelList.GetCount: Integer;
begin
Result := StringList.Count;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -