Visual Basic - Propiedad del Toolbar

Life is soft - evento anual de software empresarial
 
Vista:

Propiedad del Toolbar

Publicado por roxana (35 intervenciones) el 22/07/2007 00:11:09
Alguien sabe como puedo cambiar la propiedad ALINGMENTdel toolbar, por defecto viene en 0 o sea arriba, pero necesito llevarla a la izquierda, si alguien sabe favor help.

roxana
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Align

Publicado por Zoto (3 intervenciones) el 22/07/2007 01:16:57
Simplemente debes establecer la propiedad Align en tiempo de diseño (desde la ventana Propiedades) o en tiempo de ejecución (desdel mismo código fuente) a una de la siguientes propiedades:

vbAlignNone - 0 - Sin alineación
vbAlignTop - 1 - Alineado arriba (POR DEFECTO)
vbAlignBottom - 2 - Alineado abajo
vbAlignLeft - 3 - Alineado a la izquierda
vbAlignRight - 4 - Alineado a la derecha

El único problema que puede surgir al cambiar la alineación es que las dimensiones del ToolBar pueden desvirtuarse, por así decirlo.
Lo que ocurre es que al cambiar la alineación de arriba/abajo a izquierda/derecha el ancho del ToolBar sigue siendo el mismo (el ToolBar pasa a ocupar todo el formulario)
Y al cambiar la alineación de izquierda/derecha a arriba/abajo la altura del ToolBar sigue siendo la misma (el ToolBar pasa a ocupar todo el formulario).

Para solventar este problema, puedes utilizar el siguiente procedimiento que te he escrito. Lo que hace es comprobar si se produce un cambio de los comentados arriba e intercambia los valores de las dimensiones (ancho por altura) al almacenarlos en variables temporales. En el caso que el cambio de alineación no sea de los problemáticos, entonces se almacenan de forma normal.
Una vez hecho esto, cambia la alineación.
Acto seguido, comprueba cual es la nueva alineación.
Si es arriba o abajo solo se podrá modificar la altura. Se asigna la altura almacenada anteriormente.
Si es izquierda o derecha solo se podrá modificar la anchura. Se asigna la anchura almacenada anteriormente.
Si no tiene alineación, se asignan ambas dimensiones (altura y anchura).
Aquí tienes el procedimiento:

Private Sub ChangeToolBarAlign(ByRef ToolBarObj As Toolbar, ByVal NewAlign As Integer)
Dim H As Double
Dim W As Double

With ToolBarObj
If ((.Align = vbAlignLeft Or .Align = vbAlignRight) And (NewAlign = vbAlignTop Or NewAlign = vbAlignBottom)) Or _
((.Align = vbAlignTop Or .Align = vbAlignBottom) And (NewAlign = vbAlignLeft Or NewAlign = vbAlignRight)) Then
H = .Width
W = .Height
Else
H = .Height
W = .Width
End If
.Align = NewAlign
If (NewAlign = vbAlignTop Or NewAlign = vbAlignBottom) Then
.Height = H
ElseIf (NewAlign = vbAlignLeft Or NewAlign = vbAlignRight) Then
.Width = W
Else
.Height = H
.Width = W
End If
End With
End Sub

Como primer argumento toma el ToolBar cuya alineación deseas cambiar, y como segundo la nueva alineación que deseas asignarle. Los posibles valores los hemos visto al principio de este post.
Un posible uso, para alinear un ToolBar, llamado ToolBar1, a la izquierda y conservando las dimensiones, sería:

ChangeToolBarAlign Toolbar1, vbAlignLeft

Espero que te sirva.
Hasta otra,

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Align

Publicado por roxana (35 intervenciones) el 22/07/2007 08:01:59
Gracias y mil gracias. tu ayuda me permitio ir a descanzar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar