anchor.diff:    Result := TfpgSpinEditFloat;
   end;
   
  +{ TMediatorEditIntegerView }
  +
  +function TMediatorEditIntegerView.GetGUIControl: TComponent;
  +begin
  +  Result:= FEditControl;
  +end;
  +
  +procedure TMediatorEditIntegerView.SetGUIControl(const AValue: TComponent);
  +begin
  +  FEditControl := AValue as TfpgEditInteger;
  +  //inherited SetGUIControl(AValue);
  +end;
  +
  +procedure TMediatorEditIntegerView.UpdateGuiValidStatus(pErrors: TtiObjectErrors);
  +var
  +  oError: TtiObjectError;
  +begin
  +  inherited UpdateGuiValidStatus(pErrors);
  +
  +  oError := pErrors.FindByErrorProperty(FieldName);
  +  if oError <> nil then
  +  begin
  +    EditControl.BackgroundColor  := clError;
  +    EditControl.Hint   := oError.ErrorMessage;
  +  end
  +  else
  +  begin
  +    EditControl.BackgroundColor  := clBoxColor;
  +    EditControl.Hint   := '';
  +  end;
  +end;
  +
  +procedure TMediatorEditIntegerView.SetupGUIandObject;
  +begin
  +  inherited;
  +  if ObjectUpdateMoment in [ouOnChange,ouCustom] then
  +    FEditControl.OnChange := @DoOnChange
  +  else
  +    FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +procedure TMediatorEditIntegerView.SetObjectUpdateMoment(
  +  const AValue: TObjectUpdateMoment);
  +begin
  +  inherited SetObjectUpdateMoment(AValue);
  +  if Assigned(FEditControl) then
  +    If ObjectUpdateMoment in [ouOnchange,ouCustom] then
  +      FEditControl.OnChange := @DoOnChange
  +    else
  +      FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +constructor TMediatorEditIntegerView.Create;
  +begin
  +  inherited Create;
  +  GUIFieldName := 'Value';
  +end;
  +
  +destructor TMediatorEditIntegerView.Destroy;
  +begin
  +  if Assigned(EditControl) and Assigned(EditControl.OnChange) then
  +    EditControl.OnChange := nil;
  +  inherited Destroy;
  +end;
  +
  +class function TMediatorEditIntegerView.ComponentClass: TClass;
  +begin
  +  Result := TfpgEditInteger;
  +end;
  +
  +
  +{ TMediatorEditFloatView }
  +function TMediatorEditFloatView.GetGUIControl: TComponent;
  +begin
  +  Result:= FEditControl;
  +end;
  +
  +procedure TMediatorEditFloatView.SetGUIControl(const AValue: TComponent);
  +begin
  +  FEditControl := AValue as TfpgEditFloat;
  +  //inherited SetGUIControl(AValue);
  +end;
  +
  +procedure TMediatorEditFloatView.UpdateGuiValidStatus(pErrors: TtiObjectErrors);
  +var
  +  oError: TtiObjectError;
  +begin
  +  inherited UpdateGuiValidStatus(pErrors);
  +
  +  oError := pErrors.FindByErrorProperty(FieldName);
  +  if oError <> nil then
  +  begin
  +    EditControl.BackgroundColor  := clError;
  +    EditControl.Hint   := oError.ErrorMessage;
  +  end
  +  else
  +  begin
  +    EditControl.BackgroundColor  := clBoxColor;
  +    EditControl.Hint   := '';
  +  end;
  +end;
  +
  +procedure TMediatorEditFloatView.SetupGUIandObject;
  +begin
  +  inherited;
  +  if ObjectUpdateMoment in [ouOnChange,ouCustom] then
  +    FEditControl.OnChange := @DoOnChange
  +  else
  +    FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +procedure TMediatorEditFloatView.SetObjectUpdateMoment(
  +  const AValue: TObjectUpdateMoment);
  +begin
  +  inherited SetObjectUpdateMoment(AValue);
  +  if Assigned(FEditControl) then
  +    If ObjectUpdateMoment in [ouOnchange,ouCustom] then
  +      FEditControl.OnChange := @DoOnChange
  +    else
  +      FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +constructor TMediatorEditFloatView.Create;
  +begin
  +  inherited Create;
  +  GUIFieldName := 'Value';
  +end;
  +
  +destructor TMediatorEditFloatView.Destroy;
  +begin
  +  if Assigned(EditControl) and Assigned(EditControl.OnChange) then
  +    EditControl.OnChange := nil;
  +  inherited Destroy;
  +end;
  +
  +class function TMediatorEditFloatView.ComponentClass: TClass;
  +begin
  +  Result := TfpgEditFloat;
  +end;
  +
  +{ TMediatorEditCurrencyView }
  +
  +function TMediatorEditCurrencyView.GetGUIControl: TComponent;
  +begin
  +  Result:= FEditControl;
  +end;
  +
  +procedure TMediatorEditCurrencyView.SetGUIControl(const AValue: TComponent);
  +begin
  +  FEditControl := AValue as TfpgEditCurrency;
  +  //inherited SetGUIControl(AValue);
  +end;
  +
  +procedure TMediatorEditCurrencyView.UpdateGuiValidStatus(pErrors: TtiObjectErrors);
  +var
  +  oError: TtiObjectError;
  +begin
  +  inherited UpdateGuiValidStatus(pErrors);
  +
  +  oError := pErrors.FindByErrorProperty(FieldName);
  +  if oError <> nil then
  +  begin
  +    EditControl.BackgroundColor  := clError;
  +    EditControl.Hint   := oError.ErrorMessage;
  +  end
  +  else
  +  begin
  +    EditControl.BackgroundColor  := clBoxColor;
  +    EditControl.Hint   := '';
  +  end;
  +end;
  +
  +procedure TMediatorEditCurrencyView.SetupGUIandObject;
  +begin
  +  inherited;
  +  if ObjectUpdateMoment in [ouOnChange,ouCustom] then
  +    FEditControl.OnChange := @DoOnChange
  +  else
  +    FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +procedure TMediatorEditCurrencyView.SetObjectUpdateMoment(
  +  const AValue: TObjectUpdateMoment);
  +begin
  +  inherited SetObjectUpdateMoment(AValue);
  +  if Assigned(FEditControl) then
  +    If ObjectUpdateMoment in [ouOnchange,ouCustom] then
  +      FEditControl.OnChange := @DoOnChange
  +    else
  +      FEditControl.OnExit := @DoOnChange;
  +end;
  +
  +constructor TMediatorEditCurrencyView.Create;
  +begin
  +  inherited Create;
  +  GUIFieldName := 'Value';
  +end;
  +
  +destructor TMediatorEditCurrencyView.Destroy;
  +begin
  +  if Assigned(EditControl) and Assigned(EditControl.OnChange) then
  +    EditControl.OnChange := nil;
  +  inherited Destroy;
  +end;
  +
  +class function TMediatorEditCurrencyView.ComponentClass: TClass;
  +begin
  +  Result := TfpgEditCurrency;
  +end;
  +
   end.
   
  
positive.code:     procedure   SetObjectUpdateMoment (Const AValue : TObjectUpdateMoment); override;
    public
      constructor Create; override;
      constructor CreateCustom(pEditControl: TfpgWidget; pSubject: TtiObject; pFieldName: string; pGuiFieldName: string = 'Text'); reintroduce;
      destructor  Destroy; override;
      property    EditControl: TfpgEdit read FEditControl write FEditControl;
      class function ComponentClass: TClass; override;
    end;
  
  
negative.code: procedure RegisterFallBackMediators;
  begin
    gMediatorManager.RegisterMediator(TMediatorEditView, TtiObject, [tkSString,tkAString,tkInteger,tkFloat]);
    gMediatorManager.RegisterMediator(TMediatorEditIntegerView, TtiObject, [tkInteger]);
    gMediatorManager.RegisterMediator(TMediatorEditFloatView, TtiObject, [tkFloat]);
    gMediatorManager.RegisterMediator(TMediatorEditCurrencyView, TtiObject, [tkFloat]);
    gMediatorManager.RegisterMediator(TMediatorCheckBoxView, TtiObject, [tkBool]);
    gMediatorManager.RegisterMediator(TMediatorComboboxView, TtiObject, [tkSString,tkAString]);
    gMediatorManager.RegisterMediator(TMediatorItemComboBoxView, TtiObject, [tkInteger, tkEnumeration]);
  