Aprende visual basic desde 0 parte2 by hackmin

sábado, 5 de noviembre de 2011
2.0 Introduccion

2.1 -Decoracion (visual) de exe
2.2 -Movimiento (codigo de fuente) de exe
2.3 -Protector de pantalla
2.4 -ocx, Dlls y apis
2.5 -Repasando Conceptos
2.6 -Control de Errores
2.7 -Trabajando con bases de Datos
2.7.1 -¿Que es una base de datos?
2.7.2 -Asistente de diseño de bases de datos
2.7.3 -Codigo de programacion para agregar registros
2.7.4 -como eliminar registros en la base de datos
2.7.5 -como buscar registros
2.7.6 -codigo para buscar registros
2.8 -Planificacion de un programa

Introducción:
Este tomo es basicamente para saber que son varias cosas para cuando lo nombran saber que es.
En este tomo hablaremos de la decoracion y el movimiento en un exe, para unir todo y crear un protector de pantalla. Les enseñaremos de que sirven los ocx y dlls, y como agregar mas componentes de los que hay.
Les enseñaremos que son el componente WinSock y el commondialog.
Ademas como agregar los menues comunes de Windows como inicio, archivo, formato, ayuda, insertar, etc.

Decoracion
En este tema les enseñare las tacticas para crear un formulario mas lindo a la vista.

Primero hay que saber que casi todos los componentes pueden cambiar de color con su propiedad Backcolor que se usa de la siguiente manera:

Código:
Form1.backcolor = codigo de color

El codigo de color es el codigo que usa vb para mostrar un color
Como por ejemplo &H8000000F ( gris ) y se usaria asi *:

Código:
Form1.backcolor = &H8000000F


Esto cambiaria el color al formulario.
Algunos codigos de color son estos:

&H8000000F (gris)
&H0&        (negro)
&HFFFFFF    (blanco)
&HFF&       (rojo)
&H80FF&     (naranja)
&HFFFF&     (amarillo)
&HFF00&     (verde)
&HFFFF00    (celeste)
&HFF0000    (azul)
&HFF00FF    (violeta)
&H4080&     (marron)

Tambien se puede hacer los labels y otros componentes, transparentes. Esto se hace asín:
label1.backstyle = Transparent

Y opaco:
Código:
Label1.backstyle = Opaque

Pero la letra siempre se ve.

Otra cosa que se le puede hacer a un label es cambiarle el borde:

Lo pondria con linea:
Código:
Label1.borderstyle = 1-Fixed single

Y sin linea de borde:
código:
Label1.borderstyle = 0-None

Ahora pongan un label y prueben los distintos cambios:

Cuando pasas el mouse por arriba de un label o un picture puedes hacer que le sucedan cambios de esta forma:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.backcolor = &H8000000F
End Sub

Private Sub Form_MouseMove --> al mover el mouse por el form

Label1.backcolor = &H8000000F --> cambiar de color el label1

Código:
Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.backcolor = &HFF00&     
End Sub

Private Sub label1_MouseMove --> al pasar el mouse por ensima del label

Label1.backcolor = &HFF00& --> cambiar el color del label1
Esto hari *a que al tener el mouse en el formulario el label sea gris y al pasarlo por encima del label se cambiari *a a gris

F5 para ejecutar.

Ahora lo que hagan con el mouse move es su problema y depende de ustedes hacer una buena aplicacion.

Salu2

Movimiento:

En este tema enseñare como hacer movimiento de objetos en un formularios en vb6.0 llegaremos a mover hasta el formulario por la pantalla.

Hay que saber para empezar que los objetos tienen una propiedad que dice la columna y la fila en que esta en la pantalla o formulario.

La propiedad de columna se llama TOP y la de filas se llama LEFT.

Top + 100 haria que el objeto baya hacia abajo
\/
Top - 100 hari*a que el objeto baya hacia arriba
/\
Left + 100 haria que el objeto baya hacia la izquierda
<
Left - 100 hari*a que el objeto baya hacia la derecha
>

Y se usa de esta manera

Código:
Label1.top = label1.top + 100


Label1.top = a si mismo + 100

Direccion
\/
\/

Código:
Label1.top = label1.top - 100


Label1.top = a si mismo - 100

Direccion
/\
/\

Código:
Label1.left = label1.left + 100

Label1.left = a si mismo + 100

Direccion
<<<<

Código:
Label1.left = label1.left - 100

Label1.left = a si mismo - 100

Direccion
>>>>

Y el formulario si nos ponemos a pensar es algo fa¡cil, en vez de poner label1 ponemos form

Código:
form.left = label1.left - 100


form.left = a si mismo - 100

Direccion:
>>>>

Esto puede ir de la mano con un timer

Salu2
Protector de Pantalla:
Bueno mucha gente se pregunta
¿como se hacen los protectores de pantalla?

Pues con un lenguaje de programacion, en este caso vb6.0
En este tema cortito les enseñare como transformar nuestra aplicacion en un protector de pantalla.
Es fa¡cil todo se basa con cambiarle el formato a nuestra aplicacion al generar el exe.
Al ponerle el nombre por ejemplo:

Miprotector

Le tienen que agregar .SCR

Miprotector.scr

Y lo generan como otra aplicacion. Luego lo instalan como cualquier protector de pantalla.

Salu2 

Info general dlls, OCX, y apis :

Bueno con esto nos dedicaremos directamente a explicar que son estas cosas, como usarlas podrian encontrarlo por todos lados (en el momento que lo neseciten) ahora les enseño que es cada cosa y para que sirve.

DLL: las dll para el que no sabe son partes pequeñas de los programas, pueden ser desde el codigo de un mensaje hasta el codigo de un motor de busqueda de un antivirus.
Estos sirven para que no se haga tan pesado un programa, es dividirlo en partes y luego ejecutarlas desde el nucleo del programa (lo que muestra primero o lo que se mantiene siempre en funcionamiento)
Una dll puede ser llamada en cualquier momento del programa y es de uso obligatorio en programas con mucho peso. Ademas de las dll para separar codigos y ordenarlos existen los modulos que son como dll pero estos se encuentran dentro del programa y son mas que nada para organizar el codigo.

OCX: Estos son como dll (se encuentran fuera del programa) la unica diferencia es que no contienen codigo de fuente, son controles como botones mejorados o como el richtextbox (un elemento tipo textbox) estos se llaman usualmente en el principio del programa o en casos al iniciar un formulario.
La malloriÂ*a de los ocx son externos (que quiere decir esto? Pues que lo crean terceros) , estos ocx se pueden descargar desde internet y luego agregar al formulario como un componente. El problema es que a estos hay que registrarlos. ¿como es esto? Facil copias el ocx a
Código:
c:/Windows/sistem/
y luego abres el bloc de notas y escribes lo siguiente
Código:
REGSbr32 c:\windows\system\nombre del ocx.OCX
Y luego lo guardan como .bat y lo ejecutan, si todo salio bien, un mensaje dira seguro que deceas ingresar el registro y le damos a si y luego nos dira registro ingresado con exito.

API: la API de Windows es como una dll pero que viene con Windows, ejemplo podriÂ*amos decir que el msgbox es una api , todas las pc (que tengan Windows) tienen estos componentes otro ejemplo es el beep de Windows

Repasando conceptos:

¿Que es un procedimiento?

un procedimiento es un conjunto de instrucciones que se ejecutan en cierto orden para lograr un objetivo. Los procedimientos constan de un principio y un fin.
Para determinar el principio y el fin de un procedimiento se utilizan palabras clave o reservadas. Estas palabras, al igual que otras instrucciones, deben cumplir con cierto formato, denominado sintaxis. La sintaxis para iniciar y finalizar un procedimiento es:

Código:

SUB nombre-del-procedimiento

 Instruccion a ejecutar

End Sub

Por lo general la instruccion Sub se encuentra precedida por la palabra reservada Private. Esta palabra indica el alcance que tendra el procedimiento. Las palbras mas utilizadas son las siguientes:

Private: significa que el procedimiento solo puede ser utilizado en el modulo de programacion donde se esta creando (osea que si pongo private en el formulario 1 no puede llamarse desde el formulario 2)

Public: al contrario de private, significa que el procedimiento puede ser utilizado en cualquier parte del programa, el procedimiento public llamado alex que fue creado en el formulario 1 se lo puede llamar desde el formulario 2.

La sintaxis es
Private Sub nombre-del-procedimiento


Public sub nombre-del-procedimiento

¿que es una propiedad?

dentro de un procedimiento, por lo general, se hace referencia a los objetos contenidos por el formulario. Un objeto es un control insertado en el formulario y cada objeto posee sus propiedades.
Una propiedad es un valor o caracteristica perteneciente a un objeto de VB por ejemplo un control label el cual tiene la propiedad caption para cambiarle el texto.

sintaxis:

código:
objeto.propiedad = valor

¿Que es un evento?

un evento es una accion que se ejecuta para modificar un objeto de vb sintaxis

Código:
objeto.evento valor

¿que es una variable?

cuando se nesecita guardar datos se utiliza las variables, que guardan informacion para luego ser usada, cada variable tiene su tipo (como ya vimos) integer, string etc.

sintaxis de declaracion:

Código:
Dim nombre-de-mi-variable as tipo

y el uso es :

nombre-de-mi-variable = informacion a agregar

¿que es una funcion?

una funcion es una instruccion que realiza cierto procedimiento y devuelve un valor. Por lo general este valor se guarda en una variable para luego ser utilizado en otra parte del procedimiento.
¿que es un control de error?

un control de error es una instruccion que sirve para que cuando el programa detecta un error en un procedimiento realiza la accion que se avisa en el control de error.

¿como avisar que es lo que quiero que ocurra cuando ocurre un error?

pues para esto existe una linea de comando que se pone al principio del code, llamada Rutina de errores.

sintaxis

Código:

On Error GoTo marcador


en error ir a marcador.

entonces tenemos un code que dice

Código:
private sub command1_click ()
on error goto alex --> linea que dice que si encuentra 
un error se dirija a donde diga alex

mi code 

exit sub --> si todo anda bien y no hay errores, termina el code 
con esta instruccion evitando lo que sigue
alex:    --> si encuentra un error, 
salta el codigo que siga despues del error y se dirige aca, 
entonces salta el exit sub y no termina el code ni manda error 
mi code cuando hay error  ---> cuando esta en alex se continua con el code
end sub --> finalmente esta terminado todo el code del boton command 1

simple, cuando se aprieta el command1 entonces hace nuestro code, pero esperando a encontrar un error, si no lo encuentra sigue con el code.

un ejemplo seria
private sub command1_click ()
on error goto rutina_de_error

alex = text1.text
msgbox "hola " & alex & "bienvenido" 

exit sub
rutina_de_error:

msgbox "ocurrio un error y el programa debe cerrarse"
end 

end sub

esto tiene un error, porque no declaramos la variable alex entonces si la rutina de error no estubiera apareceria un error tipico de vb: "error line 59" o algo parecido, y queda feo para un programa de alto nivel, entonces al estar la rutina de error manda el mensaje "ocurrio un error y el programa debe cerrarse" y luego se cierra, si le sacaramos el end no se cerraria y el codigo sigue, lo que sirve como gran ventaja.

este control de errores es importante y nos puede ayudar de mucho

Trabajando con bases de datos:

en este capitulo nos centraremos en el uso de bases de datos, utilizando Microsoft acces 97. es imprecindible que las bases de datos se guarden en formato de acces 97 de lo contrario no funciona muy bien.

una base de datos es una tabla de informacion otrdenada en columnas y filas.
í‚¿quien nunca hiso una tabla?

----------- |columna |
fila | |
----------- | |

una base de datos se organiza como una tabla, tal cual el excel nada mas que puede servir para almacenar informacion y luego usarla en un programa, como un programa para administrar planillas medicas.

ejemplo

Cliente numero de DNI cantidad de enfermedades

jorge 48.395.461 15
juan 39.154.684 35
bety 34.198.745 12


eso seri*a un formulario de bases de datos de una planilla.
entonces creari*amos un programa con tres textbox que ingrese los datos a la base y balla agregando nuevas personas,
nombre: textbox
num de DNI: textbox
Cant de enf: textbox 

Asistente de diseño de bases de datos:


VB tiene un asistente que posee la posibilidad de crearle un formulario que utilize una base de datos, con este asistente es mucho mas facil crear formularios para utilizar bases de datos.

1. cargamos el asistente para luego usarlo, nos dirigimos al menu complementos, luego elegimos la opcion administrador de complementos, seleccionamos el VB6 DATA FORM WIZARD y le damos a la casilla cargado/descargado, por ultimo le damos a aceptar y estara cargado el asistente.

2. nos dirigimos al menu complementos y veremos que esta el complemento asistente para formularios de datos, abajo de todo. le damos click y se habrira una ventana donde iremos completando los datos, de esta forma es mas facil y rapido crear los formularios.
2.7.3 Codigo de programacion para agregar registros
RecordSet:
Un recordset es un objeto que representa la parte de la base de datos que se esta utilizando el el programa. Por lo tanto, cuando se nesecite realizar agregar, borrar, buscar, etc. se nesecitara hacer referencia al Recordset del objeto Data que se esta utilizando. Por Ejemplo:

Data1.recordset

Un registro es conciderado como agregado cuando por lo menos uno de los campos posee un valor, si agregamos un registro que no tiene ningun campo con por lo menos un dato, no queda registrado

La carga de informacion de un registro es conciderado registrado cuando se hace click en el boton siguiente del objeto Data.

Supongamos que tenemos el formulario hecho con el asistente, entonces le damos click al boton agregar, para que nos muestre el codigo de fuente de ese boton.

La unica instruccion que hay es

Código:
DatPrimaryRS.AddNew

DatPrimaryRS es el objeto Data nombrado DatPrimaryRS, usando el metodo AddNew se visualizaran los campos vacios para que el usuario comience a ingresar un dato

escriba la instruccion TxtFilds(0).SetFocus, esto hace que al apretar el boton, quede seleccionado para escribir el texto en el objeto txtFilds(0), este objeto tiene una matriz de controles, por eso se agrega el (0) para indicar el primer objeto con ese nombre.

ACLARACION:

el AddNew crea un registro vaci*o y espera a que el usuario ingrese datos que con otra instruccion o apretando el boton siguiente, esto se guarda.
si no hay datos no se guarda.



luego modificamos los formularios a nuestro gusto para que quede el diseño que queremos. Como eliminar registros en una base de datos:

Para borrar registros de una base de datos, se debe crear un procedimiento que utilice al objeto Record set junto con el metodo Delete, este metodo permite eliminar el registro que se esta visualizando.

Atencion: cuando se borra un registro no puede ser recuperado, entonces se pierde.

Supongamos que ya tenemos un formulario creado por el asistente.

Haga clic sobre el boton eliminar, este abrira el codigo de fuente de este boton.

como dijimos que si se borra no hay buelta a tras crearemos un mensaje que nos pregunte si estamos seguros de eliminar el registro.

en el code aparece with datPrimaryRS.recordset que es para borrar el registro.
justo arriva de esta linea de code agregaremos una nueva, (la del mensaje)

que diga asi:
Código:
mensaje= msgbox "¿esta seguro de eliminar el registro?" ,
 vbYesNo, "eliminacion de registros"

entonces en la variable mensaje (no hace falta declararla), nos dara la respuesta de lo que apreta el usuario.

ahora ponemos una estructura de desicion, el IF (vease estructuras de desicion)

Código:

If mensaje= vbYes Then

si la respuesta del mensaje es que si quiere eliminar el mensaje entonces:

y ahi ponemos la linea que ya estaba, la linea para borrar:

Código:

with datPrimaryRS.recordset
y terminamos la instruccion con el End If


tenemos algo asi:

Código:
Private Sub cmdDelete_Click ()

Mensaje = MsgBox "¿esta seguro de eliminar el registro?", vbYesNo, "borrar"

If Mensaje =  vbYes then 

With datPrimaryRS.Recordset

.Delete
.MoveNext

If .EOF Then .MoveLast

End With

End If

End Sub

esto hace los siguiente:

Con el metodo .Delete borra el registro
Con el metodo .MoveNext avanza al proximo (una vez que borra el registro)

Código:

If .EOF Then .MoveLast

si End Of File (fin del archivo) entonces mover al principio

End With termina la estructura de desicion With

Exactamente:

apretamos el boton
aparece un mensaje que nos pregunta "¿esta seguro que decea eliminar el registro?"
si apretamos no, entonces se cierra y no pasa nada,
si apretamos Si
el programa borra este registro
avansa al siguiente, si es el ultimo avansa al primero.


PD: Mañana sigo saludos
 

0 comentarios:

Publicar un comentario