Page 1 of 1

¿Cómo puedo dejar disable un botón de una toolbar?

Posted: Tue Jul 03, 2007 11:42 pm
by Leonel
La pregunta es, ¿Cómo puedo dejar disable un botón de una toolbar?

El código:

DEFINE TBBUTTON OF oToolBar2 ACTION (C_GD(oWnd,oMenuIt[26])) TOOLTIP "Emisión de Guías de Despacho a Clientes"

La función:

Function C_GD(oWnd,oMenuIt)

oMenuIt:Disable()

Con eso dejo disable el item del menú, pero no tengo idea qué parámetro debo usar o bien, qué when debo usar para dejar en el mismo estado el botón asociado a esa opción.

Agradeceré cualquier colaboración.

Saludos, Leonel.

Posted: Wed Jul 04, 2007 2:45 am
by Armando
Leonel:

A ver si te sirve este pequeño ejemplo

DEFINE BUTTON aBotones[ 4] OF oBarra RESOURCE "Btn04";
ACTION (aSubM1[ 4]:Disable(),; // Desactivamos la opción del menu
aBotones[ 4]:Disable(),; // Desactivamos el botón
WinNom1D(oWindow,cAplicacion),; // Llamamos a un PRG
aSubM1[ 4]:Enable(),; // Activamos la opción del menú
aBotones[ 4]:Enable()); // Activamos el botón
TOOLTIP "Crea archivo de nómina (CTRL+N)";
MESSAGE "Crea archivo de nómina mezclando conceptos fijos y excepciones";
GROUP

Saludos

Posted: Wed Jul 04, 2007 7:16 am
by Antonio Linares
Leonel,

oToolBar2:EnableButton( 2, .F. ) // Deshabilita el segundo botón

Posted: Wed Jul 04, 2007 3:43 pm
by Leonel
Antonio, nuevamente gracias, creo que era justamente el método que me faltaba aprender a usar.

Por cierto, tengo otra duda, se que las toolbars no tienen el método Menu, por lo tanto, hay que colgar menús desde una función, la pregunta es, cómo puedo dejar disable la opción de un popup que cuelga del botón de una toolbar, ya que al activar el menú, vuelve a activar los items.

Código:

Function MCCC(oMainWnd )
LOCAL oMenu, nRow:=63, nCol:=44, aPos := GetCursorPos()
MENU oMenu POPUP ;
MenuItem oMIt[1] Prompt "Cuenta Corriente Individual";
ACTION (Rec_Com(oWnd,oMenuIt[23],oMIt[1]))
Separator
MenuItem oMIt[2] Prompt "Cuenta Corriente General";
ACTION (ConsCom(oWnd,oMenuIt[24],oMIt[2]))
ENDMENU
ACTIVATE MENU oMenu AT nRow, nCol OF oMainWnd
oMainWnd:Refresh()
RETURN NIL


Se supone que con oMIt:Disable() debería dejar en ese estado la opción del menú desactivada, pero al activar el menú, la mantiene activa.