docs: def SetValue(self, value=None, act=True):
          " main method to set value "
          if value is None:
              value = wx.TextCtrl.GetValue(self).strip()
          self.__CheckValid(value)
          self.__GetMark()
          if value is not None:
              wx.TextCtrl.SetValue(self, self.format % set_float(value))
  
          if self.is_valid and hasattr(self.__action, '__call__') and act:
              self.__action(value=self.__val)
          elif not self.is_valid and self.bell_on_invalid:
              wx.Bell()
  
          self.__SetMark()