ApplyStyle y DestroyApplyStyle By 3D1 - Crea estilos en nuestros Objetos

Iniciado por EddyW, 30 Enero 2010, 06:56 AM

0 Miembros y 1 Visitante están viendo este tema.

EddyW

ApplyStyle

Son dos funciones sencillas pero útiles, (ApplyStyle y DestroyApplyStyle) las cree para un programa, usa el Objeto Shape que es creado en tiempo de ejecución para crear los bordes de los objetos, dejo un screen:

Aqui el code:
Código (ApplyStyle) [Seleccionar]
Private Function ApplyStyle(ByVal Obj As Object, Optional ByVal Tipo As BorderStyleConstants, _
        Optional ByVal Color As Long) As Long
On Error GoTo CreateObjectLine: Randomize
CreateObjectLine: ' Etiqueta, si ocurre un error al crear la linea, intenta de nuevo
With Me.Controls.Add("VB.Shape", "ShapeGrap" & CLng((CLng(Rnd * 999) * 999) + Err.Number))
    On Error GoTo 0: On Error Resume Next ' Desactivar deteccion de err., iniciar detector de err.
    Obj.BorderStyle = 0 ' Se cumple solo si el objeto admite esta Propiedad
    Obj.Appearance = 0 ' Se cumple solo si el objeto admite esta Propiedad
    .Top = Obj.Top - 10
    .Left = Obj.Left - 10
    .Width = Obj.Width + 23
    .Height = Obj.Height + 23
    If Tipo = 0 Then Tipo = vbBSSolid ' Si la variable Tipo [Opcional] no se a definido
    .BorderStyle = Tipo
    .BorderColor = Color
    .Visible = True: Err.Clear
    .Tag = "PropertyApplyStyle"
End With
End Function

Con esto aplicamos un estilo a un Objeto llamandolo asi: (Sintaxis)
Call ApplyStyle(Objeto, Tipo_De_Borde[Opcional], Color_RGB_o_ColorConstans[Opcional]
Ejemplo:
Añadimos un TextBox y añadimos este code al evento Form_Load..
Call ApplyStyle(Text1, vbBSSolid, RGB(200, 200, 200))
Esto aplica un borde de color Plomo a algo parecido al Text1..
otro ejemplo:
Call ApplyStyle(Text1, vbBSDashDotDot, VbGreen)
Otro:
Call ApplyStyle(Text1)
Esto es ApplyStyle, ahora para destruir el Style simplemente usamos otra funcion DestroyApplyStyle:

DestroyApplyStyle

Esta es aun mas sencilla, podemos ocultar los Shape's gracias a la propiedad Tag que permite guardar info acerca del objeto..
Código ( DestroyApplyStyle) [Seleccionar]
Private Function DestroyApplyStyle() As Long
On Error Resume Next: Dim Obj As Object
For Each Obj In Form1.Controls
    If Obj.Tag = "PropertyApplyStyle" Then
        Me.Controls.Remove Obj
    End If
    Obj.BorderStyle = 1
    Obj.Appearance = 1
    DoEvents
Next
End Function

Uso:
Call DestroyApplyStyle()
Espero les guste, y les sirva.. ;)

SaluDOS!!!

seba123neo

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

BlackZeroX

.
Exactamente aun que la vdd este se ve bien a diferencia del supuesto skin que es el que no me gusta para nada de nada.

Temibles Lunas!¡.
.
The Dark Shadow is my passion.

fary

Cita de: seba123neo en 30 Enero 2010, 16:51 PM
¿ estos son los codigo de PortalHacker o yo estoy borracho ?

Cambiar el color de los bordes de un Frame y un TextBox simulándolos mediante un control Shape

si, es el de CPH. Se ve que dcidio postearlo aora aqui.

a mi me gusta bastante la idea.

salu2!
Un byte a la izquierda.

EddyW

Cita de: seba123neo en 30 Enero 2010, 16:51 PM
¿ estos son los codigo de PortalHacker o yo estoy borracho ?

Cambiar el color de los bordes de un Frame y un TextBox simulándolos mediante un control Shape
Si son de PortalHacker ahí fue posteado originalmente :D

El del Link que pusiste, no, no se de quien serán..
Cita de: BlackZeroX▓▓▒▒░░ en 30 Enero 2010, 18:59 PM
.
Exactamente aun que la vdd este se ve bien a diferencia del supuesto skin que es el que no me gusta para nada de nada.

Temibles Lunas!¡.
.
Si a mi tampoco me gusto la idea de que sea un supuesto Skin ya que al moverlo el control Shape se quedaría aun ahí :P
Pero lo hice en caso de una emergencia XD, quería que la apariencia cambiara un poco sin usar muchos recursos, y sin usar ActiveSkin ;)

SaluDOS!!!