Variable con propiedades?

Iniciado por ranslsad, 22 Noviembre 2010, 18:34 PM

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

ranslsad

Hola amigos, ando medio verde en VB y no me acuerdo bien como se declaraban las variables con propiedades o algo asi, nose si me explico bien.

Lo que necesito es tener un objeto con variables string... Ejemplo

Ema.nombre = "hola"
Ema.apelido = "hola2"

msgbox "Ema.nombre" & ema.apellido

Tambien darle indexs.. se puede?
Ej:
ema(index).nombre = "hola"

Nose si me explico bien, pero estoy medio perdido.

Desde ya, Gracias.

Salu2

Ranslsad

theghost_te

Esos se llaman estructuras, empieza por un Private Type y debajo van las variables y acaba en un End Type
se hace asi:

Option Explicit
Private Type Persona
    nombre As String
    apellido As String
    Email As String
    Edad As Byte
End Type
Private Sub Form_Load()
    Dim Alguien As Persona
    Alguien.nombre = "Lolo"
    Alguien.apellido = "Peralta"
    Alguien.Email = "Lolo@gamail.com"
    Alguien.Edad = 25
    MsgBox "Nombre: " & Alguien.nombre & vbCrLf & "Apellido: " & Alguien.apellido _
        & vbCrLf & "Email: " & Alguien.Email & vbCrLf & "Edad: " & Alguien.Edad
End Sub


Ejecuta ese codigo.

agus0

Una Pregunta que se me ocurrió ahora como se aplican los Type a las funciones
Biero que cuando Por Ejemplo Vamos a poner MsgBox en el Style nos sale una lista con las posibles opciones vbExclamation, vbInformation, Etc... Como se puede hacer eso
Ejemplo

Código (vb) [Seleccionar]

Private Sub Form_Load()
    Call MiFuncion(OPCION_1) '<---- Ahi nos apareceria la lista con las 2 opciones
End Sub

Public Function MiFuncion (???)
if ??? = OPCION_1 Then
    msgbox "1"
end if
    if ??? = OPCION_2 Then
msgbox "2"
    end if
End Function

ranslsad

Muchisimas gracias! me salvastes :P
___
Agus0 vos lo que preguntas es esto(creo).

Código (vb) [Seleccionar]

Public Function mifuncion(variable1 As String, variable2 As Integer)
MsgBox variable1 & vbNewLine & variable2
End Function

Private Sub Form_Load()
Call mifuncion("Nombre", "15")
End Sub


Espero que  te sirva.

Salu2

Ranslsad

TGa.

O tambien las podes crear con un modulo de clase

theghost_te

Lo que agusO dice no se hace con type sino con Enum (Enumeracion)
copia este codigo en un Form y lo ejecutas:

Option Explicit

'Primero escribes tu Enumeracion (Enum)
'Luego defines los valores de sus miembros
Private Enum TipoMensaje    'Aqui pones el nombre que quieras, igual modo para cada miembro
    Error = 16      'opcion 1 ----> vbCritical
    Exclamacion = 48    'opcion 2 ---->vbExclamation
    Informacion = 64    'opcion 3 ---->vbInformation
End Enum    'Fin del enum

Private Enum TipoResultado
    Si = 6
    No = 7
End Enum
Private Sub Form_Load()
    'Luego declaras tus variables asi:
    'dim Variables as MiEnum , en este caso Dim Resultado as TipoRespuesta
    Dim Resultado As TipoResultado
    'cuando quieras asignar un valor a la variable te saldra la lista
    'Aqui en esta llamada a Mensaje cuando escribas el 2do parametro te desplegarà
    'la lista de miembros del Enum (Error - Exclamacion - Informacion)
     Mensaje "Ejemplo de Enum", Informacion, "Ejemplo VB 6"
     Resultado = MensajeSiNo("¿Eres listo?", "Ejemplo")
     If Resultado = Si Then
        MsgBox "Ejegiste Si"
    ElseIf Resultado = No Then
        MsgBox "Ejegiste No"
    End If
   
End Sub


Private Function Mensaje(Texto As String, Estilo As TipoMensaje, Titulo As String)
    MsgBox Texto, Estilo, Titulo
End Function

'Aqui pones tu Funcion (...) as TuEnum para que tambien te despliegue la lista de miembros
Private Function MensajeSiNo(Texto As String, Titulo As String) As TipoResultado
    MensajeSiNo = MsgBox(Texto, vbYesNo, Titulo)
End Function

BlackZeroX


Las enumeraciones son automaticas...

Código (Vb) [Seleccionar]


option explicit

Enum EOpciones
    [ Enumeración uno ] = 0
    [ Enumeración Dos ]
    [ Enumeración Tres ]
    [ Enumeración Cuatro ]
end Enum

private sub Form_Load()
    msgbox ProcesoN (EOpciones.[ Enumeración Cuatro ])
end sub

Friend/Public/private/property (Get/Let/Set) funtion/Sub ProcesoN (byval opcion  as EOpciones) as long
    '   //  ... N Procesos..
    ProcesoN= 0& + opcion
end Friend/Public/private/property



Las estructuras en ocasiones es nesesitan que hagan mas por ello se usa "Property (Get/Let/Set)" en una clase o en el form X, y si la estructura se usa dentro de la misma se usa el indicador "Friend"

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

agus0

No. Lo que Yo digo no es eso. Si encuentro algún Code de ejemplo mañana lo comparto.