Cambiar texto de boton de Barra de Botones en ejecución

Cambiar texto de boton de Barra de Botones en ejecución

Postby artu01 » Thu May 11, 2017 12:19 am

Hola :
Quiero cambiar el texto a un Boton que esta en la barra de botones pero no logro hacerlo se
cuelga y sale el msje: Error BASE/1004 Message not found : NIL:SETTEXT

Code: Select all  Expand view

   DEFINE WINDOW oMainWnd ;
       MDI                ;
       FROM 0,0 TO 30, 80 ;
       TITLE ::cTitulo                       ;
       MENU ::Menu()                         ;
       BRUSH oBrush

   DEFINE MESSAGE BAR oMsg OF oMainWnd 2007  ;
       CLOCK DATE
       
   DEFINE BUTTONBAR BUTTONSIZE 53,57 oBar    ;
       OF oMainWnd 2007

   DEFINE BUTTON oBot RESOURCE "B_MES2" OF oBar    ;
        PROMPT cMesElejido       ;                                                
      ACTION ( IIF(TPWDIR->OPTI1, Eval({|| cMesElejido:=SeleccionMes(), oBot:SetText(cMesElejido), oBot:Refresh() }), MsgBox(2,"NO tiene acceso a esta opción")));  //===>el error se produce en esta linea el metodo SetText no existe
      MESSAGE "Periodo de Proceso" ;                                                            
      TOOLTIP "Periodo de Proceso"
           
   DEFINE BUTTON OF oBar PROMPT "Pedido"        ;
       RESOURCE "Nota_Pedido"                     ;
       ACTION ( IIF(TPWDIR->GDESPA, Guia(), MsgBox(2,"NO tiene acceso a esta opción")));
       TOOLTIP "Nota de Pedido"               ;
       MESSAGE "Nota de Pedido"
   ...
   ...

 

Gracias
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 399
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Cambiar texto de boton de Barra de Botones en ejecución

Postby cnavarro » Thu May 11, 2017 1:56 am

Intenta asi
Code: Select all  Expand view


.../... ACTION ( oBar:aControls[ 3 ]:SetText( "Hola" ), oBar:Refresh() )
// El 3 es el numero de boton
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Cambiar texto de boton de Barra de Botones en ejecución

Postby artu01 » Thu May 11, 2017 2:59 pm

Gracias Cristobal por responder pero no funciona me sale el mismo error: Error BASE/1004 Message not found : NIL:SETTEXT
He intentado asi:
1era forma
Code: Select all  Expand view

   DEFINE BUTTON RESOURCE "B_MES2" OF oBar    ;  
        PROMPT cMesElejdo      ;    
      ACTION ( IIF(TPWDIR->OPTI1, Eval({|| cMesElejido:=SeleccionMes(), oBar:aControls[ 1 ]:SetText(cMesElejido) }), MsgBox(2,"NO tiene acceso a esta opción"))) ;
      MESSAGE "Periodo de Proceso" ;            
      TOOLTIP "Periodo de Proceso"
 

2da forma
Code: Select all  Expand view

  oBot:={,,,}
   DEFINE BUTTON oBot[ 1 ] RESOURCE "B_MES2" OF oBar    ;  
        PROMPT cMesElejdo      ;    
      ACTION ( IIF(TPWDIR->OPTI1, Eval({|| cMesElejido:=SeleccionMes(), oBar:aControls[ 1 ]:SetText(cMesElejido) }), MsgBox(2,"NO tiene acceso a esta opción"))) ;
      MESSAGE "Periodo de Proceso" ;            
      TOOLTIP "Periodo de Proceso"
 

3era forma
Code: Select all  Expand view

  oBot:={,,,}
         DEFINE BUTTON oBot[ 1 ] RESOURCE "B_MES2" OF oBar    ;
        PROMPT cMesElejdo      ;
      ACTION ( IIF(TPWDIR->OPTI1, Eval({||cMesElejido:=SeleccionMes(), obot[ 1 ]:SetText(cMesElejido) }), MsgBox(2,"NO tiene acceso a esta opción"))) ;
      MESSAGE "Periodo de Proceso" ;
      TOOLTIP "Periodo de Proceso"
 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 399
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Cambiar texto de boton de Barra de Botones en ejecución

Postby cnavarro » Thu May 11, 2017 5:24 pm

Artu01, el código que te he puesto funciona, comprobado
Pruébalo sin nada más, en el action del button
Por lo que habrá que buscar por qué no te reconoce el oBar dentro del codeblock, no?

Code: Select all  Expand view

( IIF(TPWDIR->OPTI1, ( cMesElejido:=SeleccionMes(), oBar:aControls[ 1 ]:SetText(cMesElejido), oBar:Refresh() ), MsgBox(2,"NO tiene acceso a esta opción"))) ;

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Cambiar texto de boton de Barra de Botones en ejecución

Postby artu01 » Thu May 11, 2017 5:44 pm

Cristobal tenia razon si funciona con tu indicacion, yo no me di cuenta que habia dejado dentro de mi funcion SeleccionMes() al final
una sentencia oBot:SetText(ladescripciondelmes(nMes)) que era la linea que producia el error y no era como yo suponia en la linea del Action

Gracias Doc!
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 399
Joined: Fri May 11, 2007 8:20 pm
Location: Lima


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Enrico Maria Giordano, Google [Bot] and 15 guests