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

📄 dws2classeslibmodule.pas

📁 script language
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit dws2ClassesLibModule;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  dws2Comp, dws2Exprs;

type
  Tdws2ClassesLib = class(TDataModule)
    dws2Unit: Tdws2Unit;
    procedure dws2UnitClassesTListMethodsAddEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsCountEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsDeleteEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsIndexOfEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsRemoveEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsDestroyEval(Info: TProgramInfo;
      ExtObject: TObject);                             
    procedure dws2UnitClassesTHashtableMethodsSizeEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTHashtableMethodsCapacityEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableMethodsPutEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableMethodsGetEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableMethodsHasKeyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableMethodsRemoveKeyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableMethodsPutEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableMethodsGetEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableMethodsHasKeyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableMethodsRemoveKeyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStackMethodsPushEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStackMethodsPopEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStackMethodsPeekEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStackMethodsCountEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTQueueMethodsPushEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTQueueMethodsPopEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTQueueMethodsPeekEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTQueueMethodsCountEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTQueueMethodsDestroyEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStackMethodsDestroyEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableMethodsDestroyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableMethodsDestroyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsClearEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsInsertEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsDestroyEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsAddEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsIndexOfEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsIndexOfNameEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsInsertEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetValuesEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetNamesEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsClearEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetTextEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSetTextEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetCountEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetCommaTextEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSetCommaTextEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsLoadFromFileEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSaveToFileEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsDeleteEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsExchangeEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsMoveEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsAddStringsEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetObjectsEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsAddObjectEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsInsertObjectEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsIndexOfObjectEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsSortEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsFindEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsGetDuplicatesEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsSetDuplicatesEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsGetSortedEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringListMethodsSetSortedEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsGetStringsEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSetStringsEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsGetItemsEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTListMethodsSetItemsEval(Info: TProgramInfo;
      ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSetObjectsEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTStringsMethodsSetValuesEval(
      Info: TProgramInfo; ExtObject: TObject);
    procedure dws2UnitClassesTListConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTIntegerHashtableConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTStringHashtableConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTQueueConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTStackConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTStringsConstructorsCreateAssignExternalObject(
      Info: TProgramInfo; var ExtObject: TObject);
    procedure dws2UnitClassesTHashtableMethodsClearEval(Info: TProgramInfo;
      ExtObject: TObject);
  private
    FScript: TDelphiWebScriptII;
    procedure SetScript(const Value: TDelphiWebScriptII);
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  published
    property Script: TDelphiWebScriptII read FScript write SetScript;
  end;

procedure Register;

var
  dws2ClassesLib: Tdws2ClassesLib;

implementation

uses
  dws2Hashtables, dws2Symbols, Contnrs;

{$R *.DFM}

procedure Register;
begin
  RegisterComponents('DWS2', [Tdws2ClassesLib]);
end;

{ Tdws2Lib }

procedure Tdws2ClassesLib.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited;
  if (Operation = opRemove) and (AComponent = Script) then
    SetScript(nil)
end;

procedure Tdws2ClassesLib.SetScript(const Value: TDelphiWebScriptII);
var
  x: Integer;
begin
  if Assigned(FScript) then
    FScript.RemoveFreeNotification(Self);
  if Assigned(Value) then
    Value.FreeNotification(Self);

  FScript := Value;
  for x := 0 to ComponentCount - 1 do
    if Components[x] is Tdws2Unit then
      Tdws2Unit(Components[x]).Script := Value;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListConstructorsCreateAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
begin
  ExtObject := TList.Create;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsAddEval(Info: TProgramInfo;
  ExtObject: TObject);
begin
  Info['Result'] := TList(ExtObject).Add(Pointer(Integer(Info['Obj'])));
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsCountEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TList(ExtObject).Count;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsDeleteEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TList(ExtObject).Delete(Info['Index']);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsGetItemsEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := Integer(TList(ExtObject)[Info['Index']]);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsSetItemsEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TList(ExtObject)[Info['Index']] := Pointer(Integer(Info['Value']));
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsIndexOfEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TList(ExtObject).IndexOf(Pointer(Integer(Info['Obj'])));
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsRemoveEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TList(ExtObject).Remove(Pointer(Integer(Info['Obj'])));
end;

procedure Tdws2ClassesLib.dws2UnitClassesTListMethodsDestroyEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  ExtObject.Free;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTHashtableMethodsSizeEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := THashTable(ExtObject).Size;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTHashtableMethodsCapacityEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := THashTable(ExtObject).Capacity;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTHashtableMethodsClearEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  THashTable(ExtObject).Clear;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableConstructorsCreateAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
begin
  ExtObject := TIntegerHashtable.Create;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTStringHashtableMethodsDestroyEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  ExtObject.Free;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableMethodsPutEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TIntegerHashTable(ExtObject).Put(Info['Key'], Info['Value']);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableMethodsGetEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TIntegerHashTable(ExtObject).Get(Info['Key']);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableMethodsHasKeyEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TIntegerHashTable(ExtObject).HasKey(Info['Key']);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableMethodsRemoveKeyEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TIntegerHashTable(ExtObject).RemoveKey(Info['Key']);
end;

procedure Tdws2ClassesLib.dws2UnitClassesTStringHashtableConstructorsCreateAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
begin
  ExtObject := TStringHashtable.Create;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTIntegerHashtableMethodsDestroyEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  ExtObject.Free;
end;

procedure Tdws2ClassesLib.dws2UnitClassesTStringHashtableMethodsPutEval(
  Info: TProgramInfo; ExtObject: TObject);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -