Aprende VB6 desde 0000 by alexander1712 tomo 2

Iniciado por alexander1712, Octubre 25, 2012, 05:45:05 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

hola gente estoy de nuevo y con mas experiencia y con el TOMO2.

ORIENTACIONES: BASES DE DATOS Y ANIMACION DEL FORMULARIO

INDICE

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
2.9 -Carta de despedida

Introduccion

Eh aqui ­ el segundo tomo del tutorial de Alexmanycool para CPH
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: php
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: php
Form1.backcolor = &H8000000F


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

Código: php
&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:

Código: php
label1.backstyle = Transparent


Y opaco:

Código: php
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: php
Label1.borderstyle = 1-Fixed single


Y sin linea de borde:

Código: php
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:

Código: php
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: php
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: php
Label1.top = label1.top + 100


Label1.top = a si mismo + 100

Direccion
\/
\/

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


Label1.top = a si mismo - 100

Direccion
/\
/\

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


Label1.left = a si mismo + 100

Direccion
<<<<

Código: php
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: php
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

2.4 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: [Seleccionar]
c:/Windows/sistem/
y luego  abres el bloc de notas y escribes lo siguiente
Código: [Seleccionar]
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

2.5 -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: php
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

Código: php
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: php
objeto.propiedad = valor


¿Que es un evento?

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

Código: php
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: php
Dim nombre-de-mi-variable as tipo


y el uso es

Código: php
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.

2.6 -Control de errores

¿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: php
On Error GoTo marcador


en error ir a marcador.

entonces tenemos un code que dice

Código: php
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

Código: php
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.

2.7.1 - ¿que es una base de datos?

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

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: php
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.

2.7.4 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: php
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: php
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: php
with datPrimaryRS.recordset


y terminamos la instruccion con el End If


tenemos algo asi:

Código: php
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: php
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.

2.7.6 ¿Como buscar un registro en la base de datos?

una de las cosas mas importantes en una base de datos es la busqueda de un registro, para lo cual se puede realizar creando un procedimiento que utilize cualquiera de los metodos detallados a continuacion:

FindFirst: Busca el primer registro que cumpla con la condicion especificada

FindLast: busca el ultimo registro que cumpla con la condicion especificada

FindNext: Busca ek siguiente registro que cumpla con la condicion especificada (a partir de la posicion actual)

FindPrevious: Busca el registro anterior que cumpla con la condicion especificada (a partir de la posicion actual)

la sintaxis es:

Código: php
Data1.Recordset.metodo "condicion"


metodo es alguno de arriva por ejemplo

Código: php
Data1.Recordset.FindFirst "condicion"


la condicion es la tabla=el valor

Ejemplo

Código: php
Data1.Recordset.FindoFirst "PubID=40"


si el valor que queremos buscar esta dentro de una bariable entonces se utiliza alguno de los dos signos: + o &
& es un encadenador, para juntar un linea de comando con algun valor de tipo texto y el + para sumar a un dato alguna variable.

Ejemplo:

Código: php
Data1.Recordset.FindFirst "PubID=" + Busqueda


busqueda es una variable de tipo numurico, que puede tener el valor 40 por ejemplo y busca un registro que en la tabla PubID tenga el valor 40

si fuese que buscamos un dato de texto se hace asi­:

Código: php
Data1.Recordset.FindFirst "state=" & "'" + busqueda + "'"


entonces busca algo de texto, si quisieramos buscar un texto sin usar ninguna variable seria

Código: php
Data1.Recordset.FindFirst "state= 'mi texto'"

2.8 Planificacion de un proyecto

Bien una cosa a tener en cuenta es que siempre antes de empezar con un programa debe tenerse una planificacion del proyecto.

esto sirve de mucho porque a la hora de programar, siempre hay que tener un objetivo y no programar por programar y ver que sale.

Planificacion

Objetivo: El objetivo del programa ejemplo

Objetivo: mensaje de bienvenida al inigresar a windows

Pasos iniciales: aqui irian todas las cosas que nesecitas hacer para el programa en si, como los diseños y otras cosas. ejemplo

Objetivo: mensaje de bienvenida al inigresar a windows

Pasos iniciales: 1) escribir y diseñar mensaje
                         2) buscar imagenes
                         3) ajustar y personalizar la ventana que contendra el mensaje
                         4) escribir codigo de tal boton
                         5) buscar informacion y crear modulos correspondientes
                         6) probar y compilar programa

Resultado esperado: aqui ­ el resultado que se espera del programa

Objetivo: mensaje de bienvenida al inigresar a windows

Pasos iniciales: 1) escribir y diseñar mensaje
                         2) buscar imagenes
                         3) ajustar y personalizar la ventana que contendra el mensaje
                         4) escribir codigo de tal boton
                         5) buscar informacion y crear modulos correspondientes
                         6) probar y compilar programa

Resultado esperado: 1) Iniciar Windows
                                  2) Visualizar mensaje

tiempo tardado: esto se agrega al final, siempre hay que tener un control del tiempo que se tarda. este dato se pone al final cuando ya esta hecho el programa.

Objetivo: mensaje de bienvenida al inigresar a windows

Pasos iniciales: 1) escribir y diseñar mensaje
                         2) buscar imagenes
                         3) ajustar y personalizar la ventana que contendra el mensaje
                         4) escribir codigo de tal boton
                         5) buscar informacion y crear modulos correspondientes
                         6) probar y compilar programa

Resultado esperado: 1) Iniciar Windows
                                  2) Visualizar mensaje

Tiempo Tardado: 5 minutos

Costos del programa: por lo general no se usa esto, pero a la hora de presentar un proyecto es bueno ponerle precio

Objetivo: mensaje de bienvenida al inigresar a windows

Pasos iniciales: 1) escribir y diseñar mensaje
                         2) buscar imagenes
                         3) ajustar y personalizar la ventana que contendra el mensaje
                         4) escribir codigo de tal boton
                         5) buscar informacion y crear modulos correspondientes
                         6) probar y compilar programa

Resultado esperado: 1) Iniciar Windows
                                  2) Visualizar mensaje

Tiempo Tardado: 5 minutos

Costos del programa: 50 centavos

bien, esto es muy iportante a la hora de presentar algun proyecto. por eso lo pongo de tema.

2.9 Despedida

Bueno, la tan esperada parte 2 del tuto ya finalizo, espero que les halla gustado, pronto empezaremos con la parte 3 del tutorial.

Estube hablando con 3D1 (el mod de la seccion de vb6 de CPH) y me dijo que podriamos hacer la tercer parte en conjunto.

el tema individual que pense era hacerlo orientado a troyanos pero no se todabi­a si se hara con esa orientacion... esten atentos que pronto empieza.

salu2


Esta obra es publicada bajo una No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Gracias a todos los que agradecieron y pidieron el tomo 2 y a todos los que me apoyaron. veremos como sigue el tuto

Atentamente ALEXMANYCOOL/Alexander E./Alexander1712

Muy bien bro, eso le servira a mas de uno!

-Saludos-