rdonnay wrote:Alaska's XbpToolBar class was an afterthought. It was added to Xbase++ about 10 years after the first release.
Rather than creating it the correct way (using XbpStatic and XbpPushbutton objects) they took a shortcut and used a Microsoft ActiveX control. Not a good idea for all the reasons you are experiencing.
Have you looked at eXpress++?
eXpress++ toolbars are much simpler in design.
Thank you very much mr. Roger, yes but I have a function that I had a friend who creates and controls the XPBTOOLBAR very well and effecient, I pass the example, I could tell if I can do the same with eXpress ++ toolbars and would appreciate any suggestion or example.
STATIC PROCEDURE EditToolBarReporte( oDlgFW, cBarra )
LOCAL oDA
oDA := oDlgFW:drawingArea
oTBar := CrearToobarVentanaEdicion( oDA )
//oTbar:textAlign := XBPALIGN_RIGHT
**Salir
oBotton := oTBar:addItem("ESC RETORNAR", 130,,130,,,'SA')
oBotton:tooltipText = ConvToOemCP("Retornar Al Menu")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP0')
oTBar:transparentColor := GRA_CLR_INVALID
oTBar:buttonClick := {|oButton| EjecutarTBReporte( oButton:key ) }
oTBar:setColorBG( GraMakeRGBColor( {175,201,235} ) )
IF "B" $ cBarra // Consultar
oBotton :=oTBar:addItem("F3 CONSULTAR", 134,,134,,,'BU')
oBotton:tooltipText = ConvToOemCP("Consulta De Campo Correspondiente")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP1')
ENDIF
IF "V" $ cBarra // Borrar
oBotton :=oTBar:addItem("F2 BORRAR", 133,,133,,,'VO')
oBotton:tooltipText = ConvToOemCP("Borrar o Eliminar Registro")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP2')
ENDIF
IF "I" $ cBarra // Imprimir
oBotton :=oTBar:addItem("F7 IMPRIMIR", 131,,131,,,'IM')
oBotton:tooltipText = ConvToOemCP("Imprimir Listado General De Clientes")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP3')
ENDIF
IF "C" $ cBarra // Cambiar Codigo Cliente
oBotton :=oTBar:addItem("F5 CAMBIAR", 138,,138,,,'CA')
oBotton:tooltipText = ConvToOemCP("Cambiar Codigo Cliente")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP4')
ENDIF
IF "D" $ cBarra // Activar o Desactivar Cliente
oBotton :=oTBar:addItem("F9 STATUS", 139,,139,,,'DE')
oBotton:tooltipText = ConvToOemCP("Activar o Desactivar Cliente")
oTBar:addItem( ,,,,,XBPTOOLBAR_BUTTON_SEPARATOR,'BSEP5')
ENDIF
IF "G" $ cBarra // Guardar Informacion
oBotton :=oTBar:addItem("F12 PROCESAR", 405,,405,,,'GU')
oBotton:tooltipText = ConvToOemCP("Procesar o Guardar Informacion En Pantalla")
ENDIF
RETURN
FUNCTION CrearToobarVentanaEdicion( oDRAW )
LOCAL oTbar := XbpToolBar():new( oDRAW )
oTBar:create(oDRAW ,, {0,oDRAW:currentSize()[2]-50}, ;
{oDRAW:currentSize()[1],60} )
oTBar:imageWidth := 16
oTBar:imageHeight := 16
oTBar:showToolTips:= .T.
oTBar:style := XBPTOOLBAR_STYLE_FLAT // Para Los Botones
RETURN oTbar