Desactivar un Boton de la Barra de Tareas (tbar)

Desactivar un Boton de la Barra de Tareas (tbar)

Postby VPOZO » Tue Oct 06, 2009 11:05 pm

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
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)

Postby Ariel » Wed Oct 07, 2009 9:25 am

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

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

Postby jrestojeda » Wed Oct 07, 2009 1:44 pm

Otra alternativa...

Code: Select all  Expand view
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
jrestojeda
 
Posts: 593
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

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

Postby VPOZO » Wed Oct 07, 2009 3:06 pm

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....
User avatar
VPOZO
 
Posts: 32
Joined: Tue Jun 24, 2008 5:19 pm
Location: Punta Arenas, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 35 guests