fastscript 经验集

implementation
type
  TFunctions = class(TfsRTTIModule)
  private
    function CallMethod(Instance: TObject; ClassType: TClass;
      const MethodName: String; Caller: TfsMethodHelper): Variant;
  public
    constructor Create(AScript: TfsScript); override;
  end;

{ TFunctions }

function TFunctions.CallMethod(Instance: TObject; ClassType: TClass;
  const MethodName: String; Caller: TfsMethodHelper): Variant;
begin
  Result := 0;
  if MethodName = 'ONEKEY' then
    FrmMain.OneKey(Caller.Params[0],Caller.Params[1],Caller.Params[2],Caller.Params[3])
  else  if MethodName = 'ONEKEY2' then
    FrmMain.OneKey(Caller.Params[0],Caller.Params[1])
  else if MethodName = 'GETTEXT' then
    Result := FrmMain.GetText(Caller.Params[0])
  else if MethodName = 'NEXTLINE' then
    FrmMain.NextLine
  else if MethodName = 'SLEEP' then
     Sleep1(FrmMain.se.Value)
  else if MethodName = 'QUERYCANCEL' then
     Result := FrmMain.FCancel;
end;

constructor TFunctions.Create(AScript: TfsScript);
begin
  inherited Create(AScript);
  AScript.AddMethod('procedure OneKey(key1:Byte; ext1:Boolean;key2:Byte; ext2:Boolean)', CallMethod);
  AScript.AddMethod('procedure OneKey2(key:Byte; ext:Boolean = false)', CallMethod);
  AScript.AddMethod('function GetText(i: Integer):string', CallMethod);
  AScript.AddMethod('procedure NextLine', CallMethod);
  AScript.AddMethod('procedure sleep', CallMethod);
  AScript.AddMethod('function querycancel:boolean', CallMethod);
end;



initialization
  fsRTTIModules.Add(TFunctions);

finalization
  fsRTTIModules.Remove(TFunctions);
end.
View Code

 

posted @ 2015-04-27 15:34  出离  阅读(388)  评论(0编辑  收藏  举报