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
Desactivar un Boton de la Barra de Tareas (tbar)
Re: Desactivar un Boton de la Barra de Tareas (tbar)
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.
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.
- 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)
Otra alternativa...
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.
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
Espero te sirva.
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Re: Desactivar un Boton de la Barra de Tareas (tbar)
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....
gracias Arial .. Gracias Jrestojeda....