Desactivar un Boton de la Barra de Tareas (tbar)

Post Reply
User avatar
VPOZO
Posts: 32
Joined: Tue Jun 24, 2008 5:19 pm
Location: Punta Arenas, Chile

Desactivar un Boton de la Barra de Tareas (tbar)

Post 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
Ariel
Posts: 309
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

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

Post 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.
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

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

Post 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.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
VPOZO
Posts: 32
Joined: Tue Jun 24, 2008 5:19 pm
Location: Punta Arenas, Chile

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

Post 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....
Post Reply