Page 1 of 1

Desactivar un Boton de la Barra de Tareas (tbar)

Posted: Tue Oct 06, 2009 11:05 pm
by VPOZO
Amigos del foro tengo el siguiente problema tengo un dialogo al cual le defino una barra de botones el tema es que en tiempo de ejecución deseo deshabilitar uno de los botones de la barra, pero esto solo sucede cuando hago clic sobre la misma barra Ej:

//--> La barra la creo asi
FUNCTION CREABARRA()
DEFINE BUTTONBAR oBarTools SIZE 50,50 OF oDlg _3DLOOK 2007
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBADD24" PROMPT "Agrega" WHEN .T.
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBDEL24" PROMPT "Elimina" WHEN .T.
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBMOD24" PROMPT "Modifica" WHEN .T.
DEFINE BUTTON OF oBarTools RESOURCE "BMP_PRINT24" PROMPT "Imprime" WHEN .T.
RETURN Nil

//--> en el dialogo quiero desactivar el boton Imprimir y hago esto en el ACTION de un boton
oBarTools:aControls[4]:bWhen:={|| .F.}

//--> luego he probado con todo esto pero no logro que refresque el boton de la barra
oBarTools:aControls[4]:Refresh()
oBarTools:Refresh()

En cambio basta con que haga un click en la misma barra y el botón toma es estado desactivado... Revise la clase tbar de arriba a bajo pero no veo por que se comporta asi...

Gracias de antemano

Re: Desactivar un Boton de la Barra de Tareas (tbar)

Posted: Wed Oct 07, 2009 9:25 am
by Ariel
Hola,

yo lo hago asi :

FUNCTION CREABARRA()
DEFINE BUTTONBAR oBarTools SIZE 50,50 OF oDlg _3DLOOK 2007
DEFINE BUTTON obtn1 OF oBarTools RESOURCE "BMP_DBADD24" PROMPT "Agrega" WHEN .T.
DEFINE BUTTON obtn2 OF oBarTools RESOURCE "BMP_DBDEL24" PROMPT "Elimina" WHEN .T.
DEFINE BUTTON obtn3 OF oBarTools RESOURCE "BMP_DBMOD24" PROMPT "Modifica" WHEN .T.
DEFINE BUTTON obtn4 OF oBarTools RESOURCE "BMP_PRINT24" PROMPT "Imprime" WHEN .T.
RETURN Nil

oBtn1/4 los defines static o los metes en un array, y

para desactivar haces :

oBtn4:Disable(), y puedes hacer oBarTools:Refresh()

y para activar haces :

oBtn4:Enable(), y puedes hacer oBarTools:Refresh()

espero te sirva
Salu2, Ariel.

Re: Desactivar un Boton de la Barra de Tareas (tbar)

Posted: Wed Oct 07, 2009 1:44 pm
by jrestojeda
Otra alternativa...

Code: Select all

FUNCTION CREABARRA()
// Nota: lVar1,lVar2,lVar3,lVar4 Debes declararlas como Static

lVar1:=.t.
lVar2:=.t.
lVar3:=.t.
lVar4:=.t.

DEFINE BUTTONBAR oBarTools SIZE 50,50 OF oDlg _3DLOOK 2007
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBADD24" PROMPT "Agrega" WHEN lVar1 
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBDEL24" PROMPT "Elimina" WHEN lVar2 
DEFINE BUTTON OF oBarTools RESOURCE "BMP_DBMOD24" PROMPT "Modifica" WHEN lVar3 
DEFINE BUTTON OF oBarTools RESOURCE "BMP_PRINT24" PROMPT "Imprime" WHEN lVar4 
RETURN Nil
 
Luego en tiempo de ejecución solo cambia esas variables a .f. cuando lo necesites poner deshabilitado y en .t. para habilitarlo nuevamente.

Espero te sirva.
Saludos, Esteban.

Re: Desactivar un Boton de la Barra de Tareas (tbar)

Posted: Wed Oct 07, 2009 3:06 pm
by VPOZO
Gracias ambos y la verdad que ayer bien tarde logre dar con la sentencia Disable() y Enable(), Tengo otro detalle ahi pero lo voy a estudiar bien antes de molestar a alguien..


gracias Arial .. Gracias Jrestojeda....