суббота, 9 ноября 2013 г.

GUI-тестирование "по-русски". Присваивание переменной значения, через ссылку на неё. Оператор ^:=

В некотором роде продолжение к этому - http://18delphi.blogspot.ru/2013/11/gui-3-wordworker.html

Есть ещё одна конструкция- ^:=

Используется она так:


VAR I
// - определили переменную
@ I
// - взяли её адрес
^:= 1
// - присвоили переменной значение 1

Как это выглядит со стороны Delphi?

А вот так:

interface

type
 TkwSetVarValueByRef = class(TscriptWordWorker)
  protected
   procedure WorkTheWord(aWordToTheRight : TscriptKeyWord; aContext: TscriptContext); override;
 end;//TkwSetVarAsRef

implementation

 procedure TkwSetVarValueByRef.WorkTheWord(aWordToTheRight : TscriptKeyWord; aContext: TscriptContext);
 var
  l_Var : IscriptVar;
 begin
  if Supports(aContext.PopObject, IscriptVar, l_Var) then
  begin
   aWordToTheRight.DoIt(aContext);
   // - вычисляем значение слова
   l_Var.PopFrom(aContext);
   // - снимаем значение со стека и присваиваем в переменную
  end//Supports(aContext.PopObject, IscriptVar, l_Var)
  else
   Assert(false);
 end;
 

initialization
 ScriptEngine.RegisterKeyWord(TkwSetVarValueByRef, '^:=');

Это слово нам в будущем - понадобится.

Например для определения операторов =+ и =-.

Комментариев нет:

Отправить комментарий