Página 1 de 1

Comportamiento extraño al añadir un boton a un objeto ToolBar

Publicado: Mié Feb 10, 2010 12:31 pm
por aureliano.sanchezc
Buenos dias
Al añadir mediante este codigo un boton a un objeto oToolBar modifica su
apariencia desapareciendo los textos asociados a los botones existentes,
reduciendo el tamaño de los botones, etc....
WITH OBJECT ::oToolBar1
:AddItem( "NUEVO BOTON", 1 )
END
El citado codigo esta en un formulario que hereda de otro formulario
donde esta creado el objeto oToolBar y los demas botones
Gracias de antemano y un saludo

Comportamiento extraño al añadir un boton a un objeto ToolBar

Publicado: Jue Feb 11, 2010 2:08 pm
por jrcpoli-quitar
Saludos:
Normalmente el objeto TToolbar está a su vez dividido en varias partes,
por lo tanto debes ver en que parte quieres añadir el botón y además
debes de ver que la imagen sea del mismo tamaño de las anteriores, debes
de añadir la imagen y después el botón fí­jate como se añade un botón en
el fichero xfm y añadirlo al final de la barra ya que si lo añades en
una posición ya ocupada por otro puede que tengas un efecto indeseado,
te adjunto como añade Xailer los botones en dicho fichero.
WITH OBJECT ::oToolBar1 := TToolBar():New( Self )
:SetBounds( 0, 0, 772, 50 )
:nBorderStyle := bvETCHED
:lBalloons := .T.
WITH OBJECT :oImageList
:nWidth := 26
:nHeight := 26
:Add( "BMP_APPEND" )
:Add( "BMP_EDIT" )
:Add( "BMP_DELETE" )
:Add( "BMP_FIRST" )
:Add( "BMP_NEXT" )
:Add( "BMP_PREVIOUS" )
:Add( "BMP_LAST" )
:Add( "Ms_printer" )
:Add( "MS_Salir" )
END
WITH OBJECT :oImageListHot
:nWidth := 26
:nHeight := 26
:Add( "BMP_APPEND" )
:Add( "BMP_EDIT" )
:Add( "BMP_DELETE" )
:Add( "BMP_FIRST" )
:Add( "BMP_NEXT" )
:Add( "BMP_PREVIOUS" )
:Add( "BMP_LAST" )
:Add( "Ms_printer" )
:Add( "MS_Salir" )
END
WITH OBJECT :oImageListDis
:nWidth := 26
:nHeight := 26
:Add( "BMP_APPEND", .T. )
:Add( "BMP_EDIT", .T. )
:Add( "BMP_DELETE", .T. )
:Add( "BMP_FIRST", .T. )
:Add( "BMP_NEXT", .T. )
:Add( "BMP_PREVIOUS", .T. )
:Add( "BMP_LAST", .T. )
:Add( "Ms_printer", .T. )
:Add( "MS_Salir", .T. )
END
:AddSeparator( )
WITH OBJECT ::ToolBAnadir := :AddItem( " Añadir", 1,
"Añadir/Insertar" )
:OnClick := { || ::AddNew() }
END
WITH OBJECT ::ToolBEditar := :AddItem( " Editar", 2,
"Editar/Modificar" )
:OnClick := { || ::Edit() }
END
::ToolBBorrar := :AddItem( " Eliminar", 3, "Borrar",,,, .F. )
:AddSeparator( )
WITH OBJECT ::ToolBPrimero := :AddItem( " Primero", 4, "Ir al
primer registro" )
:OnClick := { || ::Principio() }
END
WITH OBJECT ::ToolBSiguiente := :AddItem( " Siguiente", 5,
"Siguiente Registro" )
:OnClick := { || ::Siguiente() }
END
WITH OBJECT ::ToolBAnterior := :AddItem( " Anterior", 6,
"Anterior registro" )
:OnClick := { || ::Anterior() }
END
WITH OBJECT ::ToolBUltimo := :AddItem( " Ultimo", 7, "Ultimo" )
:OnClick := { || ::Ultimo() }
END
:AddSeparator( )
::ToolBImprimir := :AddItem( " Imprimir", 8, "Imprimir",,,, .F. )
WITH OBJECT ::ToolBSalir := :AddItem( "Cerrar/Salir", 9,
"Cerrar/Salir" )
:OnClick := { || ::Close() }
END
:AddSeparator( )
:Create()
END
Otra forma de hacerlo si esta dividida la Toolbar en varias.
WITH OBJECT ::oTB1 := TToolBar():New( Self )
:SetBounds( 24, 1, 203, 24 )
:nClrText := clWhite
:nBtnWidth := 24
:nBtnHeight := 24
:lBalloons := .T.
WITH OBJECT :oImageList
:nWidth := 16
:nHeight := 16
:Add( "Federacion" )
:Add( "Club" )
:Add( "Socios" )
:Add( "Poblac1" )
:Add( "Ring" )
:Add( "Zonas" )
:Add( "Color" )
:Add( "Paises" )
END
WITH OBJECT :oImageListHot
:nWidth := 16
:nHeight := 16
:Add( "Federacion" )
:Add( "Club" )
:Add( "Socios" )
:Add( "Poblac1" )
:Add( "Ring" )
:Add( "Zonas" )
:Add( "Color" )
:Add( "Paises" )
END
WITH OBJECT :oImageListDis
:nWidth := 16
:nHeight := 16
:Add( "Federacion", .T. )
:Add( "Club", .T. )
:Add( "Socios", .T. )
:Add( "Poblac1", .T. )
:Add( "Ring", .T. )
:Add( "Zonas", .T. )
:Add( "Color", .T. )
:Add( "Paises", .T. )
END
:AddItem( "ToolButton1", 1, "Federaciones" ):OnClick := {||
::Federacion() }
:AddItem( "ToolButton2", 2, "Clubs" ):OnClick := {|| ::Clubs() }
:AddItem( "ToolButton3", 3, "Socios/Concursantes" ):OnClick :=
{|| ::Socios() }
:AddItem( "ToolButton4", 4, "Poblaciones de Suelta" ):OnClick
:= {|| ::Poblacion() }
:AddItem( "ToolButton5", 5, "Anillas de Nido" ):OnClick := {||
::Anillas() }
:AddItem( "ToolButton6", 6, "Zonas Nacionales" ):OnClick :=
{|| ::Zonas() }
:AddSeparator( )
:AddItem( "ToolButton8", 7, "Colores de las palomas" ):OnClick
:= {|| ::Colores() }
:AddItem( "ToolButton9", 8, "Paises de la anilla" ):OnClick :=
{|| ::Paises() }
:Create()
END
Yo lo que hago y da buen resultado es poner todos los botones y luego
desactivo según me convenga los que no necesito.
** Desactivar Opciones de la ToolBar
::oToolBar:aItems[2]:lEnabled := .F.
::oToolBar:aItems[4]:lEnabled := .F.
::oToolBar:aItems[5]:lEnabled := .F.
::oToolBar:aItems[6]:lEnabled := .F.
::oToolBar:aItems[7]:lEnabled := .F.
::oToolBar:aItems[10]:lEnabled := .F.
::oToolBar:aItems[11]:lEnabled := .F.
::oToolBar:aItems[13]:lEnabled := .F.
Espero que te sirva de orientación.
José Ramón Castro.
ASC escribió:
> Buenos dias
>
> Al añadir mediante este codigo un boton a un objeto oToolBar modifica su
> apariencia desapareciendo los textos asociados a los botones existentes,
> reduciendo el tamaño de los botones, etc....
>
> WITH OBJECT ::oToolBar1
> :AddItem( "NUEVO BOTON", 1 )
> END
>
> El citado codigo esta en un formulario que hereda de otro formulario
> donde esta creado el objeto oToolBar y los demas botones
>
> Gracias de antemano y un saludo

Comportamiento extraño al añadir un boton a un objeto ToolBar

Publicado: Vie Feb 12, 2010 8:41 am
por aureliano.sanchezc
Jose Ramon,
Muchas gracias por la información. A veces no vemos lo que tenemos
delante de nuestros ojos.
Un saludo
José Ramón Castro Polinio escribió:
> Saludos:
>
> Normalmente el objeto TToolbar está a su vez dividido en varias partes,
> por lo tanto debes ver en que parte quieres añadir el botón y además
> debes de ver que la imagen sea del mismo tamaño de las anteriores, debes
> de añadir la imagen y después el botón fí­jate como se añade un botón en
> el fichero xfm y añadirlo al final de la barra ya que si lo añades en
> una posición ya ocupada por otro puede que tengas un efecto indeseado,
> te adjunto como añade Xailer los botones en dicho fichero.
>
> WITH OBJECT ::oToolBar1 := TToolBar():New( Self )
> :SetBounds( 0, 0, 772, 50 )
> :nBorderStyle := bvETCHED
> :lBalloons := .T.
> WITH OBJECT :oImageList
> :nWidth := 26
> :nHeight := 26
> :Add( "BMP_APPEND" )
> :Add( "BMP_EDIT" )
> :Add( "BMP_DELETE" )
> :Add( "BMP_FIRST" )
> :Add( "BMP_NEXT" )
> :Add( "BMP_PREVIOUS" )
> :Add( "BMP_LAST" )
> :Add( "Ms_printer" )
> :Add( "MS_Salir" )
> END
> WITH OBJECT :oImageListHot
> :nWidth := 26
> :nHeight := 26
> :Add( "BMP_APPEND" )
> :Add( "BMP_EDIT" )
> :Add( "BMP_DELETE" )
> :Add( "BMP_FIRST" )
> :Add( "BMP_NEXT" )
> :Add( "BMP_PREVIOUS" )
> :Add( "BMP_LAST" )
> :Add( "Ms_printer" )
> :Add( "MS_Salir" )
> END
> WITH OBJECT :oImageListDis
> :nWidth := 26
> :nHeight := 26
> :Add( "BMP_APPEND", .T. )
> :Add( "BMP_EDIT", .T. )
> :Add( "BMP_DELETE", .T. )
> :Add( "BMP_FIRST", .T. )
> :Add( "BMP_NEXT", .T. )
> :Add( "BMP_PREVIOUS", .T. )
> :Add( "BMP_LAST", .T. )
> :Add( "Ms_printer", .T. )
> :Add( "MS_Salir", .T. )
> END
> :AddSeparator( )
> WITH OBJECT ::ToolBAnadir := :AddItem( " Añadir", 1,
> "Añadir/Insertar" )
> :OnClick := { || ::AddNew() }
> END
> WITH OBJECT ::ToolBEditar := :AddItem( " Editar", 2,
> "Editar/Modificar" )
> :OnClick := { || ::Edit() }
> END
> ::ToolBBorrar := :AddItem( " Eliminar", 3, "Borrar",,,, .F. )
> :AddSeparator( )
> WITH OBJECT ::ToolBPrimero := :AddItem( " Primero", 4, "Ir al
> primer registro" )
> :OnClick := { || ::Principio() }
> END
> WITH OBJECT ::ToolBSiguiente := :AddItem( " Siguiente", 5,
> "Siguiente Registro" )
> :OnClick := { || ::Siguiente() }
> END
> WITH OBJECT ::ToolBAnterior := :AddItem( " Anterior", 6,
> "Anterior registro" )
> :OnClick := { || ::Anterior() }
> END
> WITH OBJECT ::ToolBUltimo := :AddItem( " Ultimo", 7, "Ultimo" )
> :OnClick := { || ::Ultimo() }
> END
> :AddSeparator( )
> ::ToolBImprimir := :AddItem( " Imprimir", 8, "Imprimir",,,, .F. )
> WITH OBJECT ::ToolBSalir := :AddItem( "Cerrar/Salir", 9,
> "Cerrar/Salir" )
> :OnClick := { || ::Close() }
> END
> :AddSeparator( )
> :Create()
> END
>
> Otra forma de hacerlo si esta dividida la Toolbar en varias.
>
> WITH OBJECT ::oTB1 := TToolBar():New( Self )
> :SetBounds( 24, 1, 203, 24 )
> :nClrText := clWhite
> :nBtnWidth := 24
> :nBtnHeight := 24
> :lBalloons := .T.
> WITH OBJECT :oImageList
> :nWidth := 16
> :nHeight := 16
> :Add( "Federacion" )
> :Add( "Club" )
> :Add( "Socios" )
> :Add( "Poblac1" )
> :Add( "Ring" )
> :Add( "Zonas" )
> :Add( "Color" )
> :Add( "Paises" )
> END
> WITH OBJECT :oImageListHot
> :nWidth := 16
> :nHeight := 16
> :Add( "Federacion" )
> :Add( "Club" )
> :Add( "Socios" )
> :Add( "Poblac1" )
> :Add( "Ring" )
> :Add( "Zonas" )
> :Add( "Color" )
> :Add( "Paises" )
> END
> WITH OBJECT :oImageListDis
> :nWidth := 16
> :nHeight := 16
> :Add( "Federacion", .T. )
> :Add( "Club", .T. )
> :Add( "Socios", .T. )
> :Add( "Poblac1", .T. )
> :Add( "Ring", .T. )
> :Add( "Zonas", .T. )
> :Add( "Color", .T. )
> :Add( "Paises", .T. )
> END
> :AddItem( "ToolButton1", 1, "Federaciones" ):OnClick := {||
> ::Federacion() }
> :AddItem( "ToolButton2", 2, "Clubs" ):OnClick := {|| ::Clubs() }
> :AddItem( "ToolButton3", 3, "Socios/Concursantes" ):OnClick :=
> {|| ::Socios() }
> :AddItem( "ToolButton4", 4, "Poblaciones de Suelta" ):OnClick
> := {|| ::Poblacion() }
> :AddItem( "ToolButton5", 5, "Anillas de Nido" ):OnClick := {||
> ::Anillas() }
> :AddItem( "ToolButton6", 6, "Zonas Nacionales" ):OnClick := {||
> ::Zonas() }
> :AddSeparator( )
> :AddItem( "ToolButton8", 7, "Colores de las palomas" ):OnClick
> := {|| ::Colores() }
> :AddItem( "ToolButton9", 8, "Paises de la anilla" ):OnClick :=
> {|| ::Paises() }
> :Create()
> END
>
> Yo lo que hago y da buen resultado es poner todos los botones y luego
> desactivo según me convenga los que no necesito.
>
> ** Desactivar Opciones de la ToolBar
> ::oToolBar:aItems[2]:lEnabled := .F.
> ::oToolBar:aItems[4]:lEnabled := .F.
> ::oToolBar:aItems[5]:lEnabled := .F.
> ::oToolBar:aItems[6]:lEnabled := .F.
> ::oToolBar:aItems[7]:lEnabled := .F.
> ::oToolBar:aItems[10]:lEnabled := .F.
> ::oToolBar:aItems[11]:lEnabled := .F.
> ::oToolBar:aItems[13]:lEnabled := .F.
>
> Espero que te sirva de orientación.
>
> José Ramón Castro.
>
> ASC escribió:
>> Buenos dias
>>
>> Al añadir mediante este codigo un boton a un objeto oToolBar modifica su
>> apariencia desapareciendo los textos asociados a los botones existentes,
>> reduciendo el tamaño de los botones, etc....
>>
>> WITH OBJECT ::oToolBar1
>> :AddItem( "NUEVO BOTON", 1 )
>> END
>>
>> El citado codigo esta en un formulario que hereda de otro formulario
>> donde esta creado el objeto oToolBar y los demas botones
>>
>> Gracias de antemano y un saludo
>