Si quieres saber si un objeto es de un tipo especial, escribe el siguiente código:
Si TypeOf obj es ListItem entonces...
Si desea obtener el nombre de un tipo de objeto, utilice:
MsgBox "El elemento es un" & TypeName(obj)
Controlar bucles largosCuando el programa se atasca en un bucle largo, no puede hacer clic en ningún botón o tecla de comando. Esto es muy difícil de controlar para los usuarios. ¿Quizás el usuario ya no quiere ejecutar el bucle y sale haciendo clic en el botón Cancelar? ¿Cómo solucionar este problema? La respuesta es: ¡use el comando DoEvents! Es decir, ejecute el comando DoEvents al comienzo del ciclo, como el siguiente código:
Atenuar mientras dure
Para i = 1 a 1000000
hacereventos
...
siguiente yo
De hecho, no es necesario colocar el comando DoEvents en la línea 1, se puede colocar en cualquier parte del bucle. Al hacer esto, otras partes del programa, como un botón de comando que finaliza el ciclo, tendrán otra oportunidad de aceptar eventos de clic.
Haz que los bucles largos se ejecuten más rápidoDescubrí que, en general, es mejor usar la función API GetInputState para verificar el valor de la cola de entrada del programa. No sé por qué la instrucción If hace que el código se ejecute más rápido, pero en realidad funciona bien.
Por lo tanto, la siguiente línea de código puede ser
hacereventos
Reemplazar con
Si GetInputState() Entonces DoEvents
¡Probar!
De hecho, la razón de esto es: la declaración DoEvents permite que cualquier aplicación realice eventos relacionados, no solo su propio programa. Después de agregar el juicio GetInputState, ¡solo puede aceptar acciones de eventos de su propio programa!
Haga que Seleccionar Caso sea más fácilVeamos el siguiente ejemplo: construyendo una cadena a partir del usuario que hace clic en diferentes combinaciones de etiquetas:
lbl(0) = "Hola"
lbl(1) = "Comento: m "
lbl(2) = "Feliz"
lbl(3) = "Triste"
...
sub lbl_click (índice como número entero)
cadena$ = cadena$+lbl(índice).título
Luego, debe escribir una serie de declaraciones de casos seleccionados para analizar esta cadena...
seleccione cadena de mayúsculas y minúsculas $
caso "Hola comento: m Happy"
hacer algo
caso "Hola comento: m"
esto seria un error....
caso mas
hacer algo más
finalizar seleccionar
Como puede ver, esto sería muy complejo, especialmente si hay muchas etiquetas y se requieren verificaciones legales para las operaciones de fusión.
Para resolver este problema, creé una matriz con la misma longitud que el número de etiquetas:
arraylbl(n) como número entero
El valor inicial de la matriz es 1, y luego el valor de cada elemento es igual al valor anterior multiplicado por 2 (valor*2), así: 1 2 4 8 16 32 64... De esta manera, el combinación de cada par de etiquetas tendrá otro valor único"
lbl(0) + lbl(1) = 1 + 2 = 3
lbl(0) + lbl(1) + lbl(4) = 1 + 2 + 16 = 19
Ahora, cuando se hace clic en una etiqueta, su valor lblarray() correspondiente se agrega a la variable. De esta manera, basándose en algunos números, simplemente puede escribir una declaración de caso seleccionada:
seleccione caso IsLegal
caso 3
Nota: la cadena era válida
llamar a bienes
caso 19
Nota: la cadena era válida
llamar a bienes
caso más
Nota: no válido
llamar no bueno
finalizar seleccionar
¡Jaja, a veces, digitalizar personajes puede tener efectos inesperadamente buenos!