Page 1 of 1

Desabilitar botones de TOutlook2003 ( Solucionado )

Posted: Sat Jan 11, 2020 5:25 pm
by cuatecatl82
Saludos a todos, les deseo un excelente inicio de año, estoy trabajando en un proyectito y estoy ocupando la clase TOutlook2003, va bien pero necesito deshabilitar uno o más botones. Ya estuve probando pero no doy como hacerlo.

También necesitaba que se desabilitara el menú que aparece en el último botón al hacer click, pero eso ya quedó, me atrase con la deshabilitacion de botones.

Algún ejemplo de como lograrlo?

Saludos y gracias de antemano..

Image

Re: Desabilitar botones de TOutlook2003

Posted: Mon Jan 13, 2020 12:05 am
by cuatecatl82
Maestro Antonio Linares:


Alguna sugerencia? :oops: :oops:

Re: Desabilitar botones de TOutlook2003

Posted: Mon Jan 13, 2020 7:47 am
by Antonio Linares
Victor,

El método SetOption( nOption ) CLASS TOutLook2003 evalúa bChange recibiendo los parámetros nOption y nOldOption

desde el código de bChange puedes comprobar si nOption esta activo ó no y así ejecutar ó no la acción

Para guardar el estado de cada botón puedes modificar la clase TOutLook2003Group y añadirle una DATA lEnabled

Pruébalo asi

Re: Desabilitar botones de TOutlook2003

Posted: Fri Jan 17, 2020 3:33 am
by cuatecatl82
Maestro buenas noches:


Estuve revisando la clase y modificando la sin tener éxito, ya que al agregar la data lEnable no respeta que se deshabilite el grupo botón, al pasar el puntero del mouse sobre los botones reinicia y habilita el botón haciendo posible lanzar de nuevo la acción asociada.

Por lo que entendí en la clase el botón es dibujando como groupbox y actualizado en el método paint en tiempo de ejecución, imposibilitando poder deshabilitar uno o varios botones.

Que otra forma de puede lograr deshabilitar uno o varios botones?

Gracias

Re: Desabilitar botones de TOutlook2003

Posted: Fri Jan 17, 2020 10:04 am
by Antonio Linares
Victor,

Modifica el método AtGroup() así:

Code: Select all

METHOD AtGroup( nRow, nCol ) CLASS TOutLook2003

   local nGroupsArea := ::nHeight - ( Len( ::aGroups ) * 32 )
   local nGroup

   if nRow > nGroupsArea
      nGroup = Len( ::aGroups ) - Int( ( ::nHeight - nRow ) / 32 )
      if ::aGroups[ nGroup ]:lEnabled
         return nGroup 
      endif  
   endif

return nil
Añade esta DATA en la clase TOutLook2003Group
DATA lEnabled INIT .T.

y en tu código haz esto:
oOutLook2003:aGroups[ 2 ]:lEnabled = .F.

Re: Desabilitar botones de TOutlook2003

Posted: Fri Jan 17, 2020 2:27 pm
by cuatecatl82
Excelente Maestro:

Funciona al 100, lo estaba modificando en otro lugar por eso no quedaba, gracias como siempre maestraso. Genial.. saludos :mrgreen: