Visual Basic - Ordenar los valores de enum

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 37
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por seba64 (26 intervenciones) el 26/02/2019 03:58:18
¿Como puedo ordenar un enum en VB6?

He definido un tipo Enum, pero al utilizarlo en una función como parámetro, vb6 altera el orden.

Por ejemplo:

1
2
3
4
5
6
7
8
9
10
Public enum grado
    uno=1
    dos=2
    tres=3
    cuatro=4
end enum
function cambiaGrado(nuevoGrado as grado)
     -
     -
end function

Al escribir

1
2
Dim a as grado
a=cambiaGrado(

muestra:

Cuatro
dos
tres
uno

¿Alguna idea de como dar orden a esto?
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por gilman (359 intervenciones) el 26/02/2019 08:06:37
¿Cual es el código de la función CambiaGrado?
¿Que codigo estás ejecutando?
Con lo que has puesto tenemos que tener mucha imaginación para poder ayudarte.
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
sin imagen de perfil
Val: 37
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por seba64 (26 intervenciones) el 26/02/2019 15:02:47
gilman:
¿Cual es el código de la función CambiaGrado?
¿Que codigo estás ejecutando?
Con lo que has puesto tenemos que tener mucha imaginación para poder ayudarte.


mmmm... No me debo haber explicado bien. Se agradece la paciencia. Acá va código, espero que se entienda la pregunta


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Enum grado
    uno = 1
    dos = 2
    tres = 3
    cuatro = 4
End Enum
 
Function cambiaGrado(nuevoGrado As grado)
    If MsgBox("Acepta los cambios", vbYesNo, "Se ha cambiado el grado") = 6 Then
        Form1.textGrado = a
        form2.textGrado = a
        cambiaGrado = nuevoGrado
    End If
End Function
 
Sub cambioverif()
    Dim a As grado
    a=cambiaGrado(
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por Andres Leonardo (1798 intervenciones) el 26/02/2019 18:27:55
No entiendo para que quieres ordenar el ENUM.. mas bien por que no usas un control como un combo y le asignas el valie... y listo?? consulto por que debe ser un enum????
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
sin imagen de perfil
Val: 37
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por seba64 (26 intervenciones) el 26/02/2019 23:36:55
Si la pregunta no la entendiste bueno, pero se que si la entendiste. Por favor y tomatelo con todo el humor lo que que te digo esta es una pregunta acerca del uso de enum y tu respuesta es como ¿por que usas tallarines para hacer tallarines, por que no usas coliflores?
Para saciar tu curiosidad, el porque no uso controles como combo, porque son controles y están a nivel de formulario y yo estoy programando herramientas para desarrolladores.
Si alguien responde que sabe o encontró como lograr darle orden al enum, sería grandioso. Si responde que no se puede, bueno que le vamos a hacer. Y hasta responder no tengo idea, es completamente valido.
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por gilman (359 intervenciones) el 27/02/2019 11:57:26
Yo por lo menos sigo sin entender que pretendes, en el código que pones no veo donde puede mostrar:
Cuatro
dos
tres
uno
Así, que tanto yo como Andres Leonardo, no tenemos posibilidad de ayudarte
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por gilman (359 intervenciones) el 27/02/2019 12:05:08
Vale, creo que ya te he entendido, es en el intellisense, pues no, no hay forma de ordenarlo, muchas veces en los enumerados el valor asignado a cada miembro del enumerado no tiene importancia, o en el caso de tenerla, ordenarlo por ese valor no tendría ningún sentido.
Y, por lo tanto, el intellisense los ordena con un criterio que si tiene sentido, el alfabético, mediante el cual es facil encontrar un valor determinado.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por Andres Leonardo (1798 intervenciones) el 27/02/2019 14:50:53
Buenos dias Sebas..

Bueno en este foro (donde llevo 10 años contestando dudas de personas y hasta donde sé, se ha podido ayudar a verias personas....) pues siempre vienen con su idea (llamemosle logica,locura conviccion .. asi fueron adoctrinados o el sabor que desees... ) a veces no le resolvemos la duda como tal si no que damos otras maneras, o ideas para resolverlo .. cosas que la experiencia nos ha enseñado ,

sobre mi respuesta no fue con el animo de ¿por que usas tallarines para hacer tallarines, por que no usas coliflores? fue mas un ¿por que usas tallarines para hacer pasta, por que no usas fetuchini? que tambien son pasta y quizas solo los exquisitos se ofenderian si en vez de comer tallarines . comen fetuccinni , en este caso .. pues recien ahora entiendo el por que de la necesidad de los tallarines...

en todo caso contesto tu pregunta... tu estructura esta ordenada .. SI lo esta .. alfabeticametne .. pues le has puesto nombre texto del numero y VBA NO tiene la logica de ordenarlo secuencial mente por su equivalente numero de NUMERO.

Cuatro
dos
tres
uno


que podrias usar .. utilizar

1-uno
2-dos
3-tres
4-Cuatro

debido a que ordenaria por el valor del numero al inicio y no por su equivalente en letras

Espero esto te ayude

SAludos
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
sin imagen de perfil
Val: 37
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Ordenar los valores de enum

Publicado por seba64 (26 intervenciones) el 28/02/2019 02:40:51
Vale! has logrado que me de hambre y he terminado haciendo lasañas.
En realidad las definiciones de enum son varias algunas son de posiciones, estados, colores y varias más, yo sólo he puesto los números, que en realidad son hasta el diez, para hacer el ejemplo más entendible, y en varios de estos casos el orden es necesarios para la lógica del programa.
Pero si no se puede que se le va a hacer. Pero imaginate si alguien supiera la forma de hacerlo, ¿No sería grandioso?
Lo intenté por mi cuenta, lo busqué en los buscadores y por último pregunte en los foros sabiendo que posiblemente no se podía, pero yo no iba a partir haciendo una consulta pensando de un principio que es un fracaso. Algunos foreros compartieron la idea de como al principio visual basic se veía con muchas limitaciones y como después lograron superarlas con appis y otros métodos. Seguiré preguntando y quizás no encuentre la respuesta pero quizás aprenda cosas nuevas, pero si la encuentro sería como superar la última frontera :o) . Ha sido entretenido cruzar unas palabras con todos ustedes y se agradece mucho que se tomen un tiempo para leer mis desquiciadas preguntas y contestarlas. Pienso que los foros deberían ser para conversar además de ayudar y creo que es una lástima que haya quienes lleguen diciendo hola soy nuevo con actitud de decir soy lisiado o soy tu jefe y quiero la solución en una hora. Creo que es mucho mejor si todos comparten sus ideas y todos tienen derecho a equivocarse, pero entre todos se encuentra la solución. Bueno quizás creas que me he expresado demasiado jeje

(otro tema no relacionado)
Les adjunto un código de mi cosecha, por la ayuda brindada por todos. Si les interesa pueden dejar sus apreciaciones por este medio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar