• No se han encontrado resultados

PROGRAMACION EN VB 6.0

N/A
N/A
Protected

Academic year: 2021

Share "PROGRAMACION EN VB 6.0"

Copied!
11
0
0

Texto completo

(1)

PROGRAMACION EN VB 6.0

S

ENTENCIAS DE CONTROL

Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones

y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de

ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 32

estructuras son comunes en cuanto a concepto en la mayoría de los lenguajes de programación,

aunque su sintaxis puede variar de un lenguaje de programación a otro. Se trata de unas estructuras

muy importantes ya que son las encargadas de controlar el flujo de un programa según los

requerimientos del mismo. Visual Basic 6.0 dispone de las siguientes estructuras de control:

If ... Then ... Else

Select Case

For ... Next

Do ... Loop

While … Wend

For Each … Next

Sentencia IF ... THEN ... ELSE ...

Esta estructura permite ejecutar condicionalmente una o más sentencias y puede escribirse de dos

formas. La primera ocupa sólo una línea y tiene la forma siguiente:

If condicion Then sentencia1 [Else sentencia2]

La segunda es más general y se muestra a continuación:

If condicion Then

sentencia(s)

[Else

sentencia(s)]

End If

Si condicion es True (verdadera), se ejecutan las sentencias que están a continuación de

Then, y si condicion es False (falsa), se ejecutan las sentencias que están a continuación de Else, si

esta cláusula ha sido especificada (pues es opcional). Para indicar que se quiere ejecutar uno de

varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura

adecuada es la siguiente:

If condicion1 Then

sentencias1

ElseIf condicion2 Then

sentencias2

Else

sentencia-n

End If

Si se cumple la condicion1 se ejecutan las sentencias1, y si no se cumple, se examinan

secuencialmente las condiciones siguientes hasta Else, ejecutándose las sentencias correspondientes

al primer ElseIf cuya condición se cumpla. Si todas las condiciones son falsas, se ejecutan las

sentencias-n correspondientes a Else, que es la opción por defecto.

Sentencia SELECT CASE

Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión.

Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes

valores. Su forma general es la siguiente:

Select Case expresion Case etiq1

(2)

[sentencias1] Case etiq2 [sentencias2] Case Else sentenciasn End Select

donde expresion es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las

formas siguientes:

1. expresion

2. expresion To expresion

3. Is operador-de-relación expresion

4. combinación de las anteriores separadas por comas

Por ejemplo,

Numero = 8 ’ Se inicializan las variable.

Select Case Numero ’ Se va a evaluar la variable Numero. Case 1 To 5 ' Numero está entre 1 y 5.

Resultado = "Se encuentra entre 1 y 5"

' Lo siguiente se ejecuta si es True la expresión. Case 6, 7, 8 ' Numero es uno de los tres valores. Resultado = "Se encuentra entre 6 y 8"

Case Is = 9 , Is = 10 ' Numero es 9 ó 10. Resultado = "El valor es 9 o 10" Case Else ' Resto de valores.

Resultado = "El número no se encuentra entre 1 y 10" End Select

Cuando se utiliza la forma expresion To expresion, el valor más pequeño debe aparecer en

primer lugar.

Cuando se ejecuta una sentencia Select Case, Visual Basic evalúa la expresion y el control

del programa se transfiere a la sentencia cuya etiqueta tenga el mismo valor que la expresión

evaluada, ejecutando a continuación el correspondiente bloque de sentencias. Si no existe un valor

igual a la expresion entonces se ejecutan las sentencias a continuación de Case Else.

Sentencia FOR ... NEXT

La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto

número de veces. Su forma general es:

For variable = expresion1 To expresion2 [Step expresion3]

[sentencias]

Exit For

[sentencias]

Next [variable]

Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable

y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan

las sentencias, y en caso de ser mayor el control del programa salta a las líneas a continuación de

Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarán las

sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la

variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volviéndose a

efectuar la comparación entre la variable y la expresion2, y así sucesivamente.

La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que éste

finalice. Por ejemplo,

MyString="Informática "

For Words = 3 To 1 Step -1 ' 3 veces decrementando de 1 en 1. For Chars = Words To Words+4 '5 veces.

(3)

MyString = MyString & Chars ' Se añade el número Chars al string. Next Chars ' Se incrementa el contador

MyString = MyString & " " ' Se añade un espacio. Next Words

'El valor de MyString es: Informática 34567 23456 12345

Sentencia DO ... LOOP

Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea

cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o después

de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:

’ Formato 1: Do [{While/Until} condicion] [sentencias] [Exit Do] [sentencias] Loop ’ Formato 2: Do [sentencias] [Exit Do] [sentencias] Loop [{While/Until}condicion]

La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice

éste. Por ejemplo,

Check = True ’ Se inicializan las variables. Counts = 0

Do ' Empieza sin comprobar ninguna condición.

Do While Counts < 20 ' Bucle que acaba si Counts>=20 o con Exit Do. Counts = Counts + 1 ' Se incrementa Counts.

If Counts = 10 Then ' Si Counts es 10.

Check = False ' Se asigna a Check el valor False. Exit Do ' Se acaba el segundo Do.

End If Loop

Loop Until Check = False ' Salir del "loop" si Check es False.

En el ejemplo mostrado, se sale de los bucles siempre con Counts = 10. Es necesario fijarse

que si se inicializa Counts con un número mayor o igual a 10 se entraría en un bucle infinito (el

primer bucle acabaría con Counts = 20 pero el segundo no finalizaría nunca, bloqueándose el

programa y a veces el ordenador).

Sentencia WHILE … WEND

Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición

inicial. Su estructura es la siguiente:

While condicion

[sentencias]

Wend

Por ejemplo,

Counts = 0 ’ Se inicializa la variable.

While Counts < 20 ’ Se comprueba el valor de Counts. Counts = Counts + 1 ’ Se incrementa el valor de Counts. Wend ’ Se acaba el bucle cuando Counts > 19.

En cualquier caso se recuerda que la mejor forma de mirar y aprender el funcionamiento de

todas estas sentencias es mediante el uso del Help de Visual Basic. Ofrece una explicación de cada

comando con ejemplos de utilización.

(4)

Sentencia FOR EACH ... NEXT

Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la

repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los elementos

de un array (o de una colección de objetos). La forma general es la siguiente:

For Each variable In grupo

[sentencias]

Next variable

Con arrays variable tiene que ser de tipo Variant. Con colecciones variable puede ser Variant

o una variable de tipo Object. Esta construcción es muy útil cuando no se sabe el número de

elementos que tiene el array o la colección de objetos.

Esta es una forma de realizar ejecutables pero, solo encontraran ejecutable de: administrador de tareas, modo consola, word, bloc de notas y calculadora

Private Sub Cmdadtareas_Click()

valred = Shell("c:\WINDOWS\system32\taskmgr.exe") End Sub

Private Sub Cmdcalculadora_Click()

valred = Shell("c:\windows\system32\calc.exe") End Sub

Private Sub Cmdconsola_Click()

valred = Shell("c:\WINDOWS\system32\cmd.exe") End Sub

Private Sub Cmdnotepad_Click()

valred = Shell("c:\windows\notepad.exe") End Sub

Private Sub Cmdword_Click()

valred = Shell("C:\Archivos de programa\Microsoft Office\Office12\WINWORD.EXE") End Sub

Private Sub Siguiente3_Click() Form3.Hide

Form4.Show End Sub

Ocultar la barra de tareas

En un módulo copiar estas líneas:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName_ As String, ByVal lpWindowName As String) As Long

Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long,_ ByVal wFlags As Long) As Long

Global Ventana As Long Global Const Muestra = &H40 Global Const Oculta = &H80

En un formulario ponga dos botones y escriba el código correspondiente a cada uno de ellos:

(5)

Private Sub Command1_Click()

Ventana = FindWindow("Shell_traywnd", "") Call SetWindowPos(Ventana, 0, 0, 0, 0, 0, Oculta) End Sub

'Muestra la barra de tareas Private Sub Command2_Click()

Call SetWindowPos(Ventana, 0, 0, 0, 0, 0, Muestra) End Sub

Apagar el equipo, reiniciar Windows, reiniciar el Sistema:

Añadir tres botones a un formulario y escribir lo siguiente en el código del formulario: Private Declare Function ExitWindowsEx& Lib "user32" (ByVal

uFlags&, ByVal dwReserved&) Private Sub Command1_Click() Dim i as integer

i = ExitWindowsEx(1, 0&) 'Apaga el equipo End Sub

Private Sub Command2_Click() Dim i as integer

i = ExitWindowsEx(0, 0&) 'Reinicia Windows con nuevo usuario End Sub

Private Sub Command3_Click() Dim i as integer

i = ExitWindowsEx(2, 0&) 'Reinicia el Sistema End Sub

Convertir un texto a mayúsculas o minúsculas:

Crear un formulario y situar un TextBox. Escribir: Private Sub Text1_Change()

Dim I As Integer

Text1.Text = UCase(Text1.Text) I = Len(Text1.Text)

Text1.SelStart = I End Sub

Provocar la trasparencia de un formulario:

Escribir el siguiente código:

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load() Dim Resp As Long

Resp = SetWindowLong(Me.hwnd, -20, &H20&) Form1.Refresh

(6)

Abrir la ventana de Propiedades de agregar o quitar aplicaciones:

Añada el siguiente código: Private Sub Command1_Click()

X = Shell("Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl @0") End Sub

Hacer que un TextBox solo escriba en Mayúsculas

Independientemente de que este activado el BloqMayus, el textbox siempre mostrara texto en mayúsculas. Private Sub Text1_Change()

Text1.Text = UCase(Text1.Text) Text1.SelStart = Len(Text1) End Sub

Realizar procedimientos dependiendo el elemento seleccionado

Private Sub Combo1_Click() Select Case Combo1.Text Case ("Elemento1") ' Procedimiento Case ("Elemento2") ' Procedimiento Case ("Elemento3") ' Procedimiento End Select End Sub Barra de progreso

Private Sub Timer1_Timer()

If Picture2.Width < Picture1.Width Then Picture2.Width = Picture2.Width + 5 Else MsgBox ("terminado") End If End Sub Evento Cargar

Private Sub Form_Load()

' Agregar el codigo que realizara al cargar el formulario MsgBox ("Hola mundo!")

End Sub

Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:

Formulario!Control.Propiedad = valor

Se debe colocar una admiración "!" entre el formulario y el control y un punto entre el control y la propiedad Ejemplo:

(7)

Funciones de formato para fechas y hora

Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas: Funciones para Fechas

Dim cadena As String

cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"

cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979". cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"

cadena = Format("17:08", "Short Time") ' "05:08" cadena = Format("17:08", "Medium Time") ' "05:08 PM" cadena = Format("17:08", "Long Time") ' "05:08:00 PM"

Funciones para calcular fechas

Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de fechas, sumar y restar fechas y horas y otras operaciones y cálculos

DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado DateDiff : Devuelve el número de intervalos de tiempo entre dos fechas determinadas

DatePart : Devuelve una parte específica de una fecha dada

DateSerial : Devuelve un valor Date para un año, mes y día determinados Dim Cadena As String

Cadena = Date ' Devuelve el día del sistema en este formato: "02/08/2004" Cadena = Time ' Devuelve la hora del sistema en este formato: "17:32:51" 'Funciones para establecer la fecha u hora de la PC:

Date = (La fecha que queremos establecer) Time = (La hora que queremos establecer)

Uso de Random:

La función Rnd o Random posee la virtud de obtener números aleatorios entre 0 y 1: El único inconveniente a la hora de usar Rnd, es que hay que inicializarlo, en otro caso, el resultado de la función Rnd, será siempre el mismo dentro de un determinado ordenador. Por ejemplo, el código:

Private Sub Form_Load() Dim Num As Double

(8)

Num = Rnd MsgBox Num End Sub

Nos daría como resultado siempre el mismo número.

Para solucionar este problema, debemos escribir la sentencia Randomize antes de llamar a la función Rnd. De esta manera, la función Rnd actuará correctamente.

El código quedaría así: Private Sub Form_Load() Dim Num As Double Randomize

Num = Rnd MsgBox Num End Sub

Crear un link con un programa añadiéndolo al grupo de programas situado en Inicio -> Programas o Start -> Programs:

Crear un formulario y escribir:

Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String,

ByVal lpstrLinkArgs As String) As Long Private Sub Form_Load()

iLong = fCreateShellLink("",

"Visual Basic", "C:\Archivos de Programa\DevStudio\Vb\vb5.exe", "") End Sub

Forzar a un TextBox para que admita únicamente números:

Crear un formulario, añadir un TextBox y escribir el siguiente código: Sub Text1_Keypress(KeyAscii As Integer)

If KeyAscii <> Asc("9") Then

'KeyAscii = 8 es el retroceso o BackSpace If KeyAscii <> 8 Then KeyAscii = 0 End If End If End Sub Nuevo:

Private Sub Text1_Keypress(KeyAscii As Integer)

If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 End Sub

(9)

Ocultar y mostrar el puntero del ratón:

Crear un nuevo proyecto e insertar dos ButtonClick y un Módulo: Pegue el siguiente código en el formulario:

Private Sub Command1_Click() result = ShowCursor(False) End Sub

Private Sub Command2_Click() result = ShowCursor(True) End Sub

Usar las teclas alternativas Alt+O para ocultarlo y Alt+M para mostrarlo. Peguar el siguiente código en el módulo:

Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

Entrar en las Propiedades de Accesibilidad

1. Crear un nuevo formulario, Form1 por defecto

2. Añadir un boton al formulario "Command Button control" 3. Añadir el siguiente codigo a la propieded Clik del boton. Private Sub Command1_Click()

X = Shell("Rundll32.exe shell32.dll,Control_RunDLL main.cpl @2") End Sub

Como hacer imprimir un Documento

Agregar los siguiente controles en un formulario: Un control Commondialog llamado Commondialog Un control RichTextBox llamado RichTextBox

Un CommandButton llamado cmdOpcion, y en la propiedad index colocarle el valor 0, para formar un array y poder crear los demás en tiempo de ejecución

Nota: Colocar los controles en cualquier posición de la pantalla y no colocarles nada en el Caption ni el tamaño ni nada, ya

que se hace por código, es decir se les asigna el caption y se redimensionan en tiempo de ejecución . Pegar el código en el formulario

(10)

Const FILTRO_EXTENSIONES As String = "Archivos de texto (txt)|*.txt|" & _ "Rich Text Formato (RTF)|*.rtf|" & _

"Archivos INI|*.ini|Archivos HTML|" & _ "*.htm|Todos los archivos|*.*"

Private Sub Iniciar() Dim i As Integer

'Acomodamos el primer botón en la esquina superior izquierda cmdOpcion(0).Move 50, 10, 1000, 250

For i = 1 To 10 Load cmdOpcion(i)

cmdOpcion(i).Visible = True Next

'Caption de los CommandButton para las opciones With cmdOpcion .Item(0).Caption = "Nuevo" .Item(1).Caption = "Abrir" .Item(2).Caption = "Guardar" .Item(3).Caption = "Cortar" .Item(4).Caption = "Copiar" .Item(5).Caption = "Pegar" .Item(6).Caption = "Bold" .Item(7).Caption = "Italic" .Item(8).Caption = "Underlined" .Item(9).Caption = "Imprimir" .Item(10).Caption = "Color" End With

(11)

Gracias por visitar este Libro Electrónico

Puedes leer la versión completa de este libro electrónico en diferentes formatos:

 HTML(Gratis / Disponible a todos los usuarios)

 PDF / TXT(Disponible a miembros V.I.P. Los miembros con una membresía básica pueden acceder hasta 5 libros electrónicos en formato PDF/TXT durante el mes.)

 Epub y Mobipocket (Exclusivos para miembros V.I.P.)

Para descargar este libro completo, tan solo seleccione el formato deseado, abajo:

Referencias

Documento similar

Pero cuando vio a Mar sacar el fuego de bajo su ala, voló de vuelta a su tribu a contarles lo que había visto.... Justo antes de que el sol saliera, Tatkanna se despertó y comenzó

¿Cómo se traduce la incorporación de ésta en la idea de museo?; ¿Es útil un museo si no puede concebirse como un proyecto cultural colectivo?; ¿Cómo puede ayudar el procomún

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

95 Los derechos de la personalidad siempre han estado en la mesa de debate, por la naturaleza de éstos. A este respecto se dice que “el hecho de ser catalogados como bienes de

A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

En el capítulo de desventajas o posibles inconvenientes que ofrece la forma del Organismo autónomo figura la rigidez de su régimen jurídico, absorbentemente de Derecho público por