USAR OPTION EXPLICIT Poner OptionExplicit en la cabecera del código para evitar errores "misteriosos" en el código: Por ejemplo: usamos una variable llamada "Resultado". Luego queremos hacer referencia a ella pero nos equivocamos al teclear su nombre y ponemos "Resultadp". Visual Basic no detecta este hecho y la tratará como una nueva variable, dando lugar a un error en cuanto a la intención que teníamos. Si la declaración de variables hubiera sido obligatoria (OptionExplicit), Visual Basic nos habría informado que la variable "Resultadop" no estaba declarada. Esta operación se puede poner por defecto desde el menú "Herramientas -- Opciones -- Editor: Requerir declaración de variables". USAR NOMBRES ADECUADOS Dar un nombre representativo a las variables y demás elementos de la aplicación. Se trata de que al ver el nombre sepamos qué alamacena. Por ejemplo: si una variable guarda el valor total de una operación, llamarla "Total" y no "var1", que no nos dice nada acerca de su contenido. Esto mismo es aplicable a los formularios, botones, cajas de texto ... USAR UN CRITERIO DE NOMENCLATURA Seguir una norma a la hora de dar los nombres a los elementos de la aplicación. Por ejemplo: - Los nombres de los formularios empiecen por 'frm': "frmPrincipal". - Los nombres de los botones por 'cmd' (de CommandButton): "cmdAceptar". - Los de las cajas de texto por 'tb' (de TextBox): "tbNombre". - Y así con el resto de los elementos. CÓDIGO REPETIDO Si vemos que en nuestra aplicación hay código que se repite mucho, lo mejor será ponerlo dentro de un procedimiento o de una función para facilitar su uso y hacer el código más inteligible. COMENTAR EL CÓDIGO Poner comentarios en el código. Esto facilitará mucho el entendimiento del código, el saber porqué se ha hecho una determinada acción. Además, nos será útil para la reutilización del código en otras aplicaciones. También nos será de utilidad cuando dejamos de trabajar en el código una temporada y al volver sobre él nos será más fácil entenderlo de nuevo. USAR CONSTANTES Usar Constantes para valores que se vayan a usar mucho en el código. Por ejemplo: Si vamos a usar constantemente el número PI, en vez de estar continuamente escribiendo 3.14159, declaramos lo siguiente: Const PI = 3.14159 y cada vez que queramos hacer uso de ella, la pondremos directamente: Total = 6 * PI DAR UN TIPO CONCRETO A LAS VARIABLES Dar tipo a las variables. Es muy recomendable, pues así no se malgasta memoria, al reservarse justo lo que el tipo de la variable necesita. Por eso evitar el dar como tipo Variant, pues estaremos desperdiciando memoria. USAR CORRECTAMENTE LAS SENTENCIAS IF No abusar de muchas sentencias if anidadas, pues se incrementa la complejidad del código y puede que al final no obtengamos el resultado esperado. TRUCOS IMPEDIR PEGAR TEXTO EN UN CUADRO DE TEXTO Una primera solución es comprobar qué teclas se han pulsado: Sub CuadroDeTexto_KeyDown (KeyCode As Integer, Shift As Integer) If Shift = 1 And KeyCode = 45 Then KeyCode = 0 End Sub Otra solución es borrar el contenido del portapapeles cuando el cuadro de texto obtenga el foco: Private Sub CuadroDeTexto_GotFocus() Clipboard.Clear End Sub REALIZAR UNA GRÁFICA CON EL CONTROL GRAPH Para hacer una gráfica con el control Graph teniendo los datos en un Grid: Primero se rellenan las etiquetas del graph (lo que es la "leyenda" ) y se ponen a 0 los datos del Graph: ´ Muchos cajeros, un sólo dato. grafico_frm.grafico.ColumnCount = (Len(x2) - 1) / 3 ReDim label_y(1 To grafico_frm.grafico.ColumnCount) ´ Toma nota de las etiquetas (y) i = 1 For i1 = 0 To lista_cajeros.ListCount - 1 If lista_cajeros.Selected(i1) Then label_y(i) = lista_cajeros.List(i1) ´ Nombre de las leyendas grafico_frm.grafico.Column = i grafico_frm.grafico.ColumnLabel = label_y(i) i = i + 1 If i = (grafico_frm.grafico.ColumnCount + 1) Then Exit For End If End If Next i1 For i1 = 0 To lista_datos.ListCount - 1 If lista_datos.Selected(i1) Then x = "´" + lista_datos.List(i1) + "´" Exit For End If Next i1 ADMITIR SÓLO NÚMEROS EN UN TEXT BOX Una de las funciones más interesantes. Escribir este texto en el evento Key Press If KeyAscii < Asc("0" ) Or KeyAscii > Asc ("9" ) Then If KeyAscii <> 8 Then KeyAscii = 0 EJECUTAR CUALQUIER APLICACIÓN Con este código podrás ejecutar cualquier aplicación (eso sí, deberás indicarle la ruta completa del archivo). Dim recurso As Long recurso = Shell("start " & "C:windowsnotepad.exe" ) EJECUTAR CUALQUIER APLICACIÓN Con este código podrás ejecutar cualquier aplicación (eso sí, deberás indicarle la ruta completa del archivo). Dim recurso As Long recurso = Shell("start " & "C:windowsnotepad.exe" ) CENTRAR UNA VENTANA Para que las pantallas de nuestros formularios aparezcan siempre centradas independientemente de la resolución a la que esté configurado el monitor: Nombre_del_Formulario.Left = Screen.Width - Width 2 Nombre_del_Formulario.Top = Screen.Height - Height 2 OBTENER UN NÚMERO ALEATORIO Con el siguiente código obtendrás un número aleatorio. Para ello debes insertar en el formulario un Label y un Botón. Ahora en el evento click del botón introduce el siguiente código: Dim Numero As Double Randomize Numero = Rnd Label1.Caption = Numero COMPROBAR LA EXISTENCIA DE UN FICHERO Para comprobar si existe o no un determinado fichero emplea este código: [ /b ] Dim x On Error GoTo Fallo x = GetAttr("Ruta_completa_del_archivo_a_comprobar" ) /*P.ej: "C: Fichero.dat" */ MsgBox "El fichero existe." Exit Sub Fallo: MsgBox "El fichero especificado no existe. " SELECCIONAR EL CONTENIDO DE UN TEXTBOX Con este código, cuando el cuadro de texto obtenga el foco, se seleccionará todo su contenido, evitando así el tener que arrastrar el ratón para seleccionar el texto. Inserta un cuadro de texto y el evento GetFocus inserta este código: Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) APAGAR EL EQUIPO Y REINICIAR EL SISTEMA Se insertan dos botones (cbApagar y cbReiniciar). En las declaraciones generales del código se inserta lo siguiente: Private Declare Function ExitWindowsEx& Lib "user32" (ByValuFlags&, ByVal dwReserved& ) En el evento click del cbApagar se escribe lo siguiente: Dim i As Integer i = ExitWindowsEx(1, 0& ) Por último, en el evento click del cbReiniciar escribe esto: Dim i As Integer i = ExitWindowsEx(2, 0& ) DETECTAR LA LETRA ASIGNADA AL CD-ROM Insertamos una Label y en las declaraciones generales insertamos lo siguiente: Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Private Const DRIVE_REMOVABLE = 2 Private Const DRIVE_FIXED = 3 Private Const DRIVE_REMOTE = 4 Private Const DRIVE_CDROM = 5 Private Const DRIVE_RAMDISK = 6 Ahora escribimos esta otra función: Function StripNulls(startStrg$) As String Dim c%, item$ c% = 1 Do If Mid$(startStrg$, c%, 1) = Chr$(0) Then item$ = Mid$(startStrg$, 1, c% - 1) startStrg$ = Mid$(startStrg$, c% + 1, Len(startStrg$)) StripNulls$ = item$ Exit Function End If c% = c% + 1 Loop End Function Por último en el evento form Load escribimos esto otro: Dim r&, allDrives$, JustOneDrive$, pos%, DriveType& Dim CDfound As Integer allDrives$ = Space$(64) r& = GetLogicalDriveStrings(Len(allDrives$), allDrives$) allDrives$ = Left$(allDrives$, r& ) Do pos% = InStr(allDrives$, Chr$(0)) If pos% Then JustOneDrive$ = Left$(allDrives$, pos%) allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$)) DriveType& = GetDriveType(JustOneDrive$) If DriveType& = DRIVE_CDROM Then CDfound% = True Exit Do End If End If Loop Until allDrives$ = "" Or DriveType& = DRIVE_CDROM If CDfound% Then label1.Caption = "La unidad de CD-ROM corresponde a la unidad: " & UCase$(JustOneDrive$) Else label1.Caption = "Su sistema no posee CD-ROM o unidad no encontrada." End If Recuerda todo va junto, solo que algunos los separo para evitar los emoticones de Taringa!
Datos archivados del Taringa! original
0puntos
968visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:
Posts Relacionados
Dejá tu comentario
No hay comentarios nuevos todavía