Page 1 of 1

Impedir la ventana emergente de edición de xbrowser [RESUELTO]

Posted: Thu Oct 30, 2025 1:15 pm
by jose_murugosa
Queridos Compañeros del foro,
En un xbrowser he ocultado los botones de edición.

Éste es el código:

Code: Select all | Expand

XBROWSER oRs1 TITLE cTitulo SETUP ;
          ( oBrw:oWnd:bInit :=  { | o | ;
               o:oBar:l2013 := .F., ;
               o:oBar:l2010 := .F., ;
               o:oBar:l2015 := .T., ;
               o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
               o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
               o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
               o:oBar:aControls[ 6 ]:cTooltip  := "Exit", ;
               o:oBar:aControls[ 6 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
               o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ; 
               o:oBar:aControls[ 6 ]:lRight    := .T., ;
               AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 7, 9 ), ; 
               ASize( o:oBar:aControls, 6 ), ; 
               AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
               o:oBar:SetGradients(), ;
               o:oBar:Refresh() } ;
               )
¿Como puedo hacer para que al dar dobleclick sobre una fila NO se abra la dialog de edición del registro?
Probé varias de las opciones que aparecen en el foro pero sin éxito.

Gracias desde ya por vuestra ayuda.

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Thu Oct 30, 2025 7:41 pm
by carlos vargas
Y si modificas
o:bDblClick :={|| nil }
?

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Fri Oct 31, 2025 10:06 am
by jose_murugosa
carlos vargas wrote: Thu Oct 30, 2025 7:41 pm Y si modificas
o:bDblClick :={|| nil }
?
Gracias por tu respuesta Carlos.

Probé y me da este error:

Code: Select all | Expand

 Called from:  => __ERRRT_SBASE( 0 )
   Called from: ../../../tobject.prg => TDIALOG:ERROR( 0 )
   Called from: ../../../tobject.prg => (b)HBOBJECT( 0 )
   Called from: ../../../tobject.prg => TDIALOG:MSGNOTFOUND( 0 )
   Called from: ../../../tobject.prg => TDIALOG:_BDBLCLICK( 0 )
   Called from:  => (b)EVAL( 688 )
   Called from: .\source\function\xbrowser.prg => FITSIZES( 318 )
   Called from: .\source\function\xbrowser.prg => (b)XBROWSE( 266 )
   Called from: .\source\classes\dialog.prg => TDIALOG:INITIATE( 964 )
   Called from: .\source\classes\dialog.prg => TDIALOG:HANDLEEVENT( 1241 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
   Called from: .\source\function\xbrowser.prg => XBROWSE( 294 )
   Called from: d:\xbase-proyectos\estadisticas\source\Esthacdeso.prg => ELABOROINFORME( 688 )
Sigo probando.... :(

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Fri Oct 31, 2025 10:12 am
by Antonio Linares
Estimado Jose,

Es la DATA del browse:

oBrowse:bDblClick := {|| nil }

Parece que se lo estás asignando al diálogo

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Fri Oct 31, 2025 2:17 pm
by carlos vargas
En todo caso sería oBrw:bDblClick.

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Fri Oct 31, 2025 3:07 pm
by jose_murugosa
Antonio y Carlos, muchas gracias a ambos.

Dos errores corregidos.
1) Tal como dices antonio debí usar el data de oBrw
2) el Data es bLDblClick de modo que sería:

oBrw:bLDblClick:={|| nil }

Ahora funciona perfecto!!! mil gracias a ambos.

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Fri Oct 31, 2025 3:39 pm
by karinha
jose_murugosa wrote: Fri Oct 31, 2025 3:07 pm Antonio y Carlos, muchas gracias a ambos.

Dos errores corregidos.
1) Tal como dices antonio debí usar el data de oBrw
2) el Data es bLDblClick de modo que sería:

oBrw:bLDblClick:={|| nil }

Ahora funciona perfecto!!! mil gracias a ambos.
Buenos días José, ¿sería mucho pedir un ejemplo completo de cómo usar este modelo?

Gracias, tks.

Regards, saludos.

Re: Impedir la ventana emergente de edición de xbrowser

Posted: Mon Nov 03, 2025 12:09 pm
by jose_murugosa
karinha wrote: Fri Oct 31, 2025 3:39 pm
jose_murugosa wrote: Fri Oct 31, 2025 3:07 pm Antonio y Carlos, muchas gracias a ambos.

Dos errores corregidos.
1) Tal como dices antonio debí usar el data de oBrw
2) el Data es bLDblClick de modo que sería:

oBrw:bLDblClick:={|| nil }

Ahora funciona perfecto!!! mil gracias a ambos.
Buenos días José, ¿sería mucho pedir un ejemplo completo de cómo usar este modelo?

Gracias, tks.

Regards, saludos.
No para nada, es un placer ayudar

Esta función presenta de diferentes formas el xbrowser que me resultan útiles y la uso para el setup de xbrowser :

Modo de uso: XBROWSER tabla title titulo SETUP XBrBar( oBrw, 1 )
EstadoBar = 0 - Sin barra de botones ni edición con doble click
EstadoBar = 1 - Con barra de botones, desplazamiento, excel y sin edición con doble click
EstadoBar = 2 - Con barra de botones, desplazamiento, excel e imprimir sin edición con doble click
cualquier otro o si se omite el parámetro - xbrowser normal y con todos los botones y edición con doble click

Code: Select all | Expand

#Include "Fivewin.ch"
#Include "WinApi.ch"
#Include "XBrowse.ch"

FUNCTION XBrBar( oBrw, EstadoBar )
     DEFAULT EstadoBar := 3  // xbrowse sin limitaciones y con todos los botones.

     IF EstadoBar = 0
          oBrw:oWnd:bInit := ;
               { |oDlg|
               WITH OBJECT oDlg
                    :oBar:Hide()
                    oBrw:nTop -= :oBar:nHeight
                    oBrw:nHeight += :oBar:nHeight
                    oBrw:bLDblClick:={|| nil }
               END                    
               }
     ELSEIF EstadoBar = 1
          oBrw:oWnd:bInit := ( ;
               { | o | ;
               o:oBar:l2010 := .F., ;
               o:oBar:l2013 := .F., ;
               o:oBar:l2015 := .T., ;
               o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
               o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
               o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
               o:oBar:aControls[ 6 ]:cTooltip  := "Exit", ;
               o:oBar:aControls[ 6 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
               o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ; 
               o:oBar:aControls[ 6 ]:lRight    := .T., ;
               AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 7, 9 ), ; 
               ASize( o:oBar:aControls, 7 ), ; 
               AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
               o:oBar:SetGradients(), ;
               o:oBar:Refresh() }, ;
               oBrw:bLDblClick:={|| nil } )
     ELSEIF EstadoBar = 2
          oBrw:oWnd:bInit := ( ;
               { | o | ;
               o:oBar:l2010 := .F., ;
               o:oBar:l2013 := .F., ;
               o:oBar:l2015 := .T., ;
               o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 8 ]:cToolTip, ;
               o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 8 ]:bAction, ;
               o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "printer" ) ), ;
               o:oBar:aControls[ 6 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
               o:oBar:aControls[ 6 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
               o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
               o:oBar:aControls[ 7 ]:cTooltip  := "Exit", ;
               o:oBar:aControls[ 7 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
               o:oBar:aControls[ 7 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ;
               o:oBar:aControls[ 7 ]:lRight    := .T., ;
               AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 8, 9 ), ; 
               ASize( o:oBar:aControls, 7 ), ; 
               AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
               o:oBar:SetGradients(), ;
               o:oBar:Refresh() } , ;
               oBrw:bLDblClick:={|| nil } )
     ELSE
          oBrw:oWnd:bInit := { |oDlg| nil }
     ENDIF
Espero te sirva, un abrazo.
Quedo a tus órdenes por cualquier pregunta.

Re: Impedir la ventana emergente de edición de xbrowser [RESUELTO]

Posted: Mon Nov 03, 2025 5:11 pm
by karinha
Estimado José, muchas gracias.

Code: Select all | Expand

// C:\FWH\SAMPLES\MURUGOS4.PRG

#Include "FiveWin.ch"
#Include "WinApi.ch"
#Include "XBrowse.ch"

/*
  Modo de uso:  XBROWSER tabla title titulo SETUP XBrBar( oBrw, 1 )
  EstadoBar = 0 - Sin barra de botones ni edición con doble click
  EstadoBar = 1 - Con barra de botones, desplazamiento y  excel  ni edición con doble click
  EstadoBar = 2 - Con barra de botones, desplazamiento, excel e imprimir  ni edición con doble click
  cualquier otro o si se omite el parámetro - xbrowser sin limitaciones y con todos los botones
*/

STATIC oWnd

FUNCTION Main()

   LOCAL oBrw, EstadoBar, oIco, oBar, oBmp, oPopUp, oPopUp2, oPopUp3, oPopUp4, ;
         oPopUp5, oFont, oBtn := ARRAY(05)

   REQUEST DBFCDX
   rddSetDefault( "DBFCDX" )

   SET DATE FRENCH
   SET CENTURY ON
   SET EPOCH TO Year( Date() ) - 40

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14
   DEFINE ICON oIco FILE "..\icons\fax.ico"

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 TITLE "Modelos de xBrowse SETUP"   ;
      MENU  BuildMenu() COLOR "B/W" ICON oIco

   DEFINE BUTTONBAR oBar _3D SIZE 60, 40 OF oWnd 2007

   WITH OBJECT oBar // VER: ANCHO.PRG

      oBar:bRClicked := { || ( NIL ) } // Mouse Direito
      oBar:bLClicked := { || ( NIL ) } // Mouse Esquerdo

      oBar:SetFont( oFont )
      // Cor no Prompt dos Botoes
      oBar:nClrText := CLR_BLACK //HBLUE // BLACK
      oBar:Adjust()

   END

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT            ;
      PROMPT "Model 0"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 0 ) )                              ;
      TOOLTIP "Creates a new document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\open.bmp" FLAT           ;
      PROMPT "Model 1"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 1 ) )                              ;
      TOOLTIP "Opens a document"

   // Aqui Jairo.
   GetnWidthItem( 0.8 ) // Ajusta con un valor < 1, y comprueba 0.8

   MENU oPopUp POPUP 2007 COLORS HEIGHT 2.27 FONT oFont

      MENUITEM "Cadastro de Clientes"                                        ;
         FILENAME "..\bitmaps\16x16\new.bmp"                                 ;
         MESSAGE "Cadastro de Clientes - Pesquisas."                         ;
         ACTION MsgInfo( Time() )

      SEPARATOR
      MENUITEM "Cadastro de Grupos"                                          ;
         FILENAME "..\bitmaps\16x16\open.bmp"                                ;
         MESSAGE "Cadastro de Grupos - Textos Auxiliares."                   ;
         ACTION MsgInfo( Time() )

      SEPARATOR
      MENUITEM "Cadastro de Ferramentas"                                     ;
          FILENAME "..\bitmaps\16x16\printer.bmp"                            ;
         MESSAGE OemToAnsi( "Cadastro de Ferramentas da Proposta" )          ;
         ACTION MsgInfo( Time() )

      SEPARATOR
      MENUITEM "Cadastro de Mão de Obra"                                     ;
         FILENAME "..\bitmaps\16x16\prop.bmp"                                ;
         MESSAGE OemToAnsi( "Cadastro de MÆo de Obra" )                      ;
         ACTION MsgInfo( Time() )

      SEPARATOR
      MENUITEM "Cadastro de Paisagistas"                                     ;
         FILENAME "..\bitmaps\16x16\Help.bmp"                                ;
         MESSAGE OemToAnsi( "Cadastro de Paisagistas da Empresa" )           ;
         ACTION MsgInfo( Time() )

   ENDMENU

   // Aqui Jairo.
   DEFINE BUTTON oBtn[03] OF oBar ACTION oBtn[03]:ShowPopup() FLAT GROUP     ;
      FILENAME "..\bitmaps\16x16\floppy.bmp"                                 ;
      MESSAGE "Saves this document"                                          ;
      TOOLTIP "Saves this document"                                          ;
      MENU oPopup

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT GROUP  ;
      PROMPT "Model 2"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 2 ) )

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT GROUP     ;
      PROMPT "Model 3"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 3 ) )

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT        ;
      PROMPT "Model 4"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 4 ) )

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT           ;
      PROMPT "Model 5"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 5 ) )

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Close2.bmp" FLAT         ;
      PROMPT "Model 6"                                                       ;
      ACTION ( XBrBar( oBrw, EstadoBar := 6 ) )

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT           ;
      ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   DEFINE MESSAGE OF oWnd ;
      PROMPT FWVERSION + " " + FWCOPYRIGHT ;
      NOINSET CENTERED KEYBOARD DATE CLOCK 2007

   DEFINE BITMAP oBmp FILENAME "..\bitmaps\back.bmp"

   oWnd:bPainted = { | hDC | BmpTiled( hDC, oWnd, oBmp ) }

   ACTIVATE WINDOW oWnd CENTERED ;
      VALID MsgYesNo( "Do you want to quit ?" )

   oFont:End()

RETURN NIL

FUNCTION XBrBar( oBrw, EstadoBar )

   LOCAL i, oFont, oBtt, oDlg

   DEFINE FONT oFont   NAME "Ms Sans Serif" SIZE 0, -16 BOLD

   USE ..\samples\customer NEW SHARED

   IF EstadoBar = 0

      /* // error.
      XBROWSER "CUSTOMER" TITLE "Prueba 0" SETUP ;
        oBrw:oWnd:bInit := ;
             { |oDlg|
             WITH OBJECT oDlg
                  :oBar:Hide()
                  oBrw:nTop -= :oBar:nHeight
                  oBrw:nHeight += :oBar:nHeight
                  oBrw:bLDblClick:={|| nil }
             END
             }
      */

      XBROWSER "CUSTOMER" TITLE "Prueba 0" SETUP                            ;
         ( oBrw:bInit :=  {| o |                                            ;
           o:oWnd:oBar:aControls[ 8 ]:lGroup := .F.,                        ;
           o:oWnd:oBar:aControls[ 5 ]:Hide(),                               ;
           o:oWnd:oBar:aControls[ 6 ]:Hide(),                               ;
           o:oWnd:oBar:aControls[ 7 ]:Hide(),                               ;
           o:oWnd:oBar:aControls[ 8 ]:Hide(),                               ;
           o:oWnd:oBar:aControls[ 9 ]:Move( 0, o:oWnd:oBar:nWidth() -35 ) } ; // aqui
         )

   ELSEIF EstadoBar = 1

       // Jose, no comprendo. ???
      // MURUGOS4.prg(193) Warning W0027  Meaningless use of expression: 'Codeblock'
      XBROWSER "CUSTOMER" TITLE "Prueba 1" SETUP ;
        oBrw:oWnd:bInit := ( ;
             { | o | ;
             o:oBar:l2010 := .F., ;
             o:oBar:l2013 := .F., ;
             o:oBar:l2015 := .T., ;
             o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
             o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
             o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
             o:oBar:aControls[ 6 ]:cTooltip  := "Exit", ;
             o:oBar:aControls[ 6 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
             o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ;
             o:oBar:aControls[ 6 ]:lRight    := .T., ;
             AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 7, 9 ), ;
             ASize( o:oBar:aControls, 7 ), ;
             AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
             o:oBar:SetGradients(), ;
             o:oBar:Refresh() }, ;
             oBrw:bLDblClick:={|| nil } )  // NO CLICK FUNCIONA

   ELSEIF EstadoBar = 2

      // MURUGOS4.prg(218) Warning W0027  Meaningless use of expression: 'Codeblock'
      XBROWSER "CUSTOMER" TITLE "Prueba 2" SETUP ;
      oBrw:oWnd:bInit := ( ;
           { | o | ;
           o:oBar:l2010 := .F., ;
           o:oBar:l2013 := .F., ;
           o:oBar:l2015 := .T., ;
           o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 8 ]:cToolTip, ;
           o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 8 ]:bAction, ;
           o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "printer" ) ), ;
           o:oBar:aControls[ 6 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
           o:oBar:aControls[ 6 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
           o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
           o:oBar:aControls[ 7 ]:cTooltip  := "Exit", ;
           o:oBar:aControls[ 7 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
           o:oBar:aControls[ 7 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ;
           o:oBar:aControls[ 7 ]:lRight    := .T., ;
           AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 8, 9 ), ;
           ASize( o:oBar:aControls, 7 ), ;
           AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
           o:oBar:SetGradients(), ;
           o:oBar:Refresh() }, ;
           oBrw:bLDblClick:={|| nil } ) // NO CLICK FUNCIONA

   ELSEIF EstadoBar = 3

      XBROWSER "customer" TITLE "Prueba 3" SETUP ;
         ( oBrw:oWnd:bInit :=  {| o | ;
           o:oBar:l2013 := .T., ;
           o:oBar:l2010 := .F., ;
           o:oBar:l2015 := .F., ;
           o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip,   ;
           o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction,    ;
           o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ),            ;
           o:oBar:aControls[ 6 ]:cTooltip  := "Exit",                           ;
           o:oBar:aControls[ 6 ]:bAction   := {| oBtt | oBtt:oWnd:oWnd:End() }, ;
           o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "exit2" ) ),            ; // close16
           o:oBar:aControls[ 6 ]:lRight    := .T.,                              ;
           AEval( o:oBar:aControls, {| oBtt | oBtt:End() }, 7, 9 ),             ;
           ASize( o:oBar:aControls, 6 ),                                        ;
           AEval( o:oBar:aControls, {| oBtt | oBtt:Refresh() } ),               ;
           o:oBar:SetGradients(),                                               ;
           o:oBar:Refresh()                                                     ;
         } )

   ELSEIF EstadoBar = 4

      XBROWSER "CUSTOMER" TITLE "Prueba 4" SETUP            ;
         ( oBrw:bInit :=  {| o |                            ;
           o:oWnd:oBar:aControls[ 8 ]:lGroup := .F.,        ;
           o:oWnd:oBar:aControls[ 5 ]:Hide(),               ;
           o:oWnd:oBar:aControls[ 6 ]:Hide(),               ;
           o:oWnd:oBar:aControls[ 7 ]:Hide(),               ;
           o:oWnd:oBar:aControls[ 8 ]:Hide(),               ;
           o:oWnd:oBar:Del( Len( o:oWnd:oBar:aControls )) } ;
         )

   ELSEIF EstadoBar = 5

      XBROWSER "CUSTOMER" TITLE "Prueba 5" SETUP                             ;
         ( oBrw:oWnd:bInit :=  {| o |                                        ;
           o:oBar:l2007 := .T.,                                              ;
           o:oBar:l2013 := .F.,                                              ;
           o:oBar:l2010 := .F.,                                              ;
           o:oBar:l2015 := .F.,                                              ;
           o:oBar:aControls[ 6 ]:Hide(),                                     ;
           o:oBar:aControls[ 7 ]:Hide(),                                     ;
           o:oBar:aControls[ 8 ]:Hide(),                                     ;
           o:oBar:aControls[ 9 ]:Hide(),                                     ;
           o:oBar:aControls[ 5 ]:cTooltip := o:oBar:aControls[ 9 ]:cToolTip, ;
           o:oBar:aControls[ 5 ]:bAction  := o:oBar:aControls[ 9 ]:bAction,  ;
           o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ),         ;
           AEval( o:oBar:aControls, {| oBtt | oBtt:End() }, 6, 9 ),          ;
           ASize( o:oBar:aControls, 5 ),                                     ;
           AEval( o:oBar:aControls, {| oBtt | oBtt:Refresh() } ),            ;
           o:oBar:SetGradients(),                                            ;
           o:oBar:Refresh()                                                  ;
         } )

   ELSEIF EstadoBar = 6  // navarro:

     XBROWSER "customer" TITLE "Prueba 6" SETUP ;
               ( oBrw:oWnd:bInit :=  { | o | ;
                    o:oBar:l2013 := .T., ;
                    o:oBar:l2010 := .F., ;
                    o:oBar:l2015 := .F., ;
                    o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
                    o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
                    o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
                    AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 6, 9 ), ; 
                    ASize( o:oBar:aControls, 5 ), ; 
                    AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
                    o:oBar:SetGradients(), ;
                    o:oBar:Refresh() }, ;
           oBrw:bLDblClick:={|| nil } )  // NO CLICK FUNCIONA

   ENDIF

   CLOSE DATABASE

RETURN NIL

FUNCTION BuildMenu()

   LOCAL oMenu

   MENU oMenu 2007
      MENUITEM "Information"
      MENU
         MENUITEM "&About..." ;
            ACTION MsgInfo( FWDESCRIPTION ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&End..."  ;
            ACTION oWnd:End() FILENAME "..\bitmaps\16x16\exit.bmp"

      ENDMENU

      MENUITEM "&Clients"
      MENU
         MENUITEM "&New..." ;
            ACTION ( MsgStop( "New Clients" ),;
                     oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
            FILENAME "..\bitmaps\16x16\faces.bmp"

         MENUITEM "&Modify..."  ACTION MsgInfo( "Modif. Clients" ) ;
            FILENAME "..\bitmaps\edit.bmp"

         MENUITEM "&Delete..."  ACTION MsgAlert( "Del Clients" ) ;
            FILENAME "..\bitmaps\16x16\delete.bmp"

         SEPARATOR

         MENUITEM "&Browse..."  ACTION MsgInfo( "Browse Clients" ) ;
            FILENAME "..\bitmaps\16x16\browse.bmp"

      ENDMENU

      MENUITEM "&Utilities"
      MENU
         MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
            FILENAME "..\bitmaps\16x16\calc.bmp"

         MENUITEM "&Internet..." ;
            ACTION WinExec( "start iexplore www.fivetech.com", 0 ) ;
            FILENAME "..\bitmaps\16x16\explorer.bmp"
      ENDMENU
   ENDMENU

RETURN( oMenu )

STATIC FUNCTION BmpTiled( hDC, oWnd, oBmp )

   local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
   local nRow := 0, nCol := 0, n
   local nBmpWidth  := oBmp:nWidth(),  nBmpHeight := oBmp:nHeight()

   if oBmp:hBitmap == 0
      return nil
   endif

   while nRow < nHeight
      nCol = 0
      while nCol < nWidth
         PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
         nCol += nBmpWidth
      end
      nRow += nBmpHeight
   end

RETURN NIL

// FIN / END - [email protected]
Regards, saludos.