⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s2.tools.ts2clientdatamodellist.pas

📁 轉載的程序應用框架
💻 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 + -