Visual Basic


Aviso: esta página es vieja (del 2000), y no la he actualizado; la guardo como recuerdo. Reconozco que la información está incompleta y poco explicada (si quieres continuarla, escríbeme). Ah, y hablo del VB versión 5 y 6.
Ética
  1. Por qué NO usar Visual Basic.

Códigos útiles
  1. Arrastrar ficheros a un cuadro de texto.
  2. Detectar varias teclas apretadas a la vez.

Downloads
  1. Visual Basic 1.0, 2.0 y 3.0
  2. Cubo 3D

Ética

Por qué NO usar Visual Basic.   

   Os parecerá raro que recomiende no usar VB a la vez que enseño a usarlo, ¿verdad? Bueno, pues es que esta sección la hice hace tiempo, cuando no tenía experiencia en informática. Aquí hablo de hasta VB6, lo de .net ya no lo conozco (parece mejor, aunque también tiene otros problemas).
   Algunas razones por las que no deberías programar en VB:
  • No es en absoluto portable ni multiplataforma. Aunque técnicamente sería fácil hacer un compilador para Linux o MacOS, Microsoft lo tiene prohibido (¡vaya futuro que le espera! En el mundo real no sólo se usa Windows).
  • Te enseñará malos hábitos: tiene normas poco estrictas que hace que un programa se ejecute aunque esté mal diseñado. Ejemplos: permite no definir las variables, tiene propiedades que sirven para lo mismo, y requiere de librerías DLL que no todo el mundo tiene.
  • Plantea problemas de seguridad: los virus de macro que afectan al Office usan el mini-VB que éste soporta. La mayoría de virus de Windows se aprovechan del código VBScript, basado en VB. Pudiendo elegir entre JavaScript (el más usado en Internet) o VBScript, los virus eligen VBScript.
  • Es muy fácil de desensamblar y modificar por dentro, así que olvídate de la seguridad.
  • La documentación es insuficiente: las funciones potentes (APIs de Windows) no tienen documentación. Si se saben usar es porque algún usuario lo ha descubierto y lo ha hecho público. Lo mismo pasa con muchos OCX. También hay características poco documentadas, como los punteros.
  • Para colmo, el único compilador de VB que existe es muy caro.
   En fin, ya veis que odio VB y os recomiendo que lo evitéis. No vale la excusa de 'Es que tengo que generar un .EXE' por los mismos motivos: el EXE es un formato que no todo el mundo puede usar. Usando VB estás favoreciendo al monopolio de Microsoft, y eso nos afecta a todos, incluso a ti.
   Pero claro, no voy a limitarme a criticar; tendré que dar alternativas:
  • Si lo que te gusta es programar para aprender, ponte Linux y descubre el mundo de la informática, estarás aprendiendo cosas nuevas y útiles sin parar.
  • Si, como yo, usabas VB para hacer programitas rápidos y sencillos (procesar archivos, hacer cálculos, tratar datos, ...), tengo que reconocer que me es suficiente sólo con un script de bash (que es un intérprete de comandos de Linux). Mira sinó mi programa Web Characters: la versión de Windows está en VB, la de Linux, hecha en unas horas en un script de 4 kb. y que funciona mejor.
  • Usa lenguajes multiplataforma como Java o C/C++. A C++ le puedes añadir muchas librerías (también multiplataforma y libres) para hacer juegos, interfaces gráficas personalizables, programas multimedia, ... Mira la libSDL, Qt y Gtk, por ejemplo.
  • ¿En serio necesitas hacer un programa nuevo? Seguro que mucha gente ha hecho tu mismo programa antes. Si han decidido liberar el código fuente, tú también podrás usarlo para añadirle cosas, simplificarlo o sólo usarlo.
  • Si usas VB para acceder a una base de datos Access (tampoco lo recomiendo), piensa en otras posibilidades más potentes, baratas y libres. Por ejemplo, ahora mismo lo que se me ocurre es poner un Apache con PHP y que acceda una base de datos MySQL mediante una serie de páginas web que ya están hechas. Todo gratis, apto para cualquier sistema operativo, y técnicamente mucho mejor.
  • Bueno, vale....... te diré lo que estabas esperando..... ¿qué hay en Linux para hacer programas al estilo VB, poniendo un botón en un formulario, definiendo eventos, etc.? Pues puedes probar Gambas, aunque te recomiendo que lo mires sólo como curiosidad y aprendas los lenguajes "de siempre", como C++
  • Nota de 2010: un lenguaje sencillo, extensible, moderno, potente, útil para aprender a programar: Python (ver artículo sobre Python en Wikipedia)

Códigos útiles

Arrastrar ficheros a un cuadro de texto.   

   Crea un TextBox llamado Text1, ponle OLEDropMode = 1 (Manual) y escribe:

Private Sub Text1_OLEDragDrop( Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   On Error Resume Next
   Text1.Text = Data.Files(1)
End Sub

   Si se han arrastrado varios archivos, usaremos el array Data.Files(número) para saber el nombre de cada uno de ellos.

Detectar varias teclas apretadas a la vez.   

   Usaremos el API de Windows, concretamente la función GetKeyState. Cuando queramos saber si una tecla está pulsada o no, tenemos que llamar a la función pasándole como parámetro el código ASCII de la tecla que queremos analizar. Si la tecla está pulsada, la función devuelve –127 o –128. (Se van alternando los valores a cada pulsación completa.) Cuando no está apretada, la función devuelve 0 o 1. Resumiendo, la tecla está pulsada si la función devuelve un número menor de 0.
   Para ver una demostración de esta función, podemos crear un Label y un Timer con el Interval bajo (para que continuamente se produzca el Timer1_Timer). Añadir este código:

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Sub Timer1_Timer()
   If GetKeyState(32) < 0 And GetKeyState(vbKeyUp) < 0 Then
      Label1.Caption = "Estás pulsando espacio y arriba a la vez."
   Else
      Label1.Caption = "No"
   End If
End Sub

   Al ejecutar el programa, el texto del Label será No; pero al apretar Espacio y Flecha Arriba a la vez, el texto cambiará hasta que dejen de pulsarse estas teclas.

Download

Visual Basic 1.0, 2.0 y 3.0   

   Esto son reliquias... pero funcionan tan bien como los que se venden ahora. El de MS-DOS es curioso.
  • Visual Basic 1.0 MS-DOS:  2'33 mb 
  • Visual Basic 1.0 Windows:  856 kb 
  • Visual Basic 2.0:  450 kb 
  • Visual Basic 3.0:  1'7 mb 
Cubo 3D   


16'6 Kb.
CUBO 3D 1.0
   Este programa muestra la estructura de un cubo tridimensional girando en la pantalla, y se puede controlar con el ratón y el teclado.
   Lo hice yo desde cero (me costó lo de las fórmulas matemáticas), pero por desgracia no tengo el código fuente.
2-7-2000