anchor.diff:    DoEvent(IdControl, Props.FEventOnEditorCaret, AppVariantNil);
   end;
   
  -function AppVariant_KeyAndShift(AKey: word; AShift: TShiftState): TAppVariant;
  -begin
  -  FillChar(Result, SizeOf(Result), 0);
  -  Result.Typ:= avrTuple;
  -  Result.DictLen:= 2;
  -
  -  Result.DictItems[0].Typ:= avdInt;
  -  Result.DictItems[0].Int:= AKey;
  -
  -  Result.DictItems[1].Typ:= avdStr;
  -  Result.DictItems[1].Str:= ConvertShiftStateToString(AShift);
  -end;
  -
   procedure TFormDummy.DoOnEditorKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
   var
     Props: TAppControlProps;
  
positive.code:   _HandleMouseEvent(Sender, cControlEventMouseExit, AppVariantNil);
  end;
  
  function TFormDummy._MouseEventDataObject(
    AButton: TMouseButton; AShift: TShiftState; AX, AY: Integer): TAppVariant;
  begin
    FillChar(Result, SizeOf(Result), 0);
    Result.Typ:= avrDict;
    Result.DictLen:= 4;
  
    Result.DictItems[0].KeyName:= 'btn';
    Result.DictItems[0].Typ:= avdInt;
    Result.DictItems[0].Int:= Ord(AButton);
  
    Result.DictItems[1].KeyName:= 'state';
    Result.DictItems[1].Typ:= avdStr;
    Result.DictItems[1].Str:= ConvertShiftStateToString(AShift);
  
    Result.DictItems[2].KeyName:= 'x';
    Result.DictItems[2].Typ:= avdInt;
    Result.DictItems[2].Int:= AX;
  
    Result.DictItems[3].KeyName:= 'y';
    Result.DictItems[3].Typ:= avdInt;
    Result.DictItems[3].Int:= AY;
  end;
  
  procedure TFormDummy.DoOnControlMouseDown(Sender: TObject;
    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    _HandleMouseEvent(Sender, cControlEventMouseDown,
      _MouseEventDataObject(Button, Shift, X, Y)
      );
  end;
  
  
negative.code:   //cPyFalseTrue: array[boolean] of string = ('False', 'True');
  
  
  function AppVariant_KeyData(AKey: word; AShift: TShiftState): TAppVariant;
  begin
    FillChar(Result, SizeOf(Result), 0);
    Result.Typ:= avrTuple;
    Result.DictLen:= 2;
  
    Result.DictItems[0].Typ:= avdInt;
    Result.DictItems[0].Int:= AKey;
  
    Result.DictItems[1].Typ:= avdStr;
    Result.DictItems[1].Str:= ConvertShiftStateToString(AShift);
  end;
  
  
  function AppVariant_MouseData(AButton: TMouseButton; AShift: TShiftState; AX, AY: Integer): TAppVariant;
  begin
    FillChar(Result, SizeOf(Result), 0);
    Result.Typ:= avrDict;
    Result.DictLen:= 4;
  
    Result.DictItems[0].KeyName:= 'btn';
    Result.DictItems[0].Typ:= avdInt;
    Result.DictItems[0].Int:= Ord(AButton);
  
    Result.DictItems[1].KeyName:= 'state';
    Result.DictItems[1].Typ:= avdStr;
    Result.DictItems[1].Str:= ConvertShiftStateToString(AShift);
  
    Result.DictItems[2].KeyName:= 'x';
    Result.DictItems[2].Typ:= avdInt;
    Result.DictItems[2].Int:= AX;
  
    Result.DictItems[3].KeyName:= 'y';
    Result.DictItems[3].Typ:= avdInt;
    Result.DictItems[3].Int:= AY;
  end;
  
  
  procedure DoForm_SetupFilters(F: TFormDummy);
  const
    cPrefix = 'f_';
  