Al descargar es un archivo .rar, adentro está ControlProductos - VisualBasicProject. Ese es el archivo que tienen que abrir con VB6 para ver los códigos.
jueves, 26 de junio de 2008
Visual Basic - Clase VIII - Control de Alumnos, Control de Productos, Screensaver y Visor de Imágenes
Al descargar es un archivo .rar, adentro está ControlProductos - VisualBasicProject. Ese es el archivo que tienen que abrir con VB6 para ver los códigos.
Visual Basic - Clase VII - Reloj y Semáforo
Reloj Digital:
Private Sub Form_Load()
TmrM.Enabled = False
TmrH.Enabled = False
LblP1.Caption = ""
LblP2.Caption = ""
End Sub
Private Sub TmrS_Timer()
LblS.Caption = LblS.Caption + 1
If LblS.Caption Mod 2 = 0 Then
LblP1.Caption = ""
LblP2.Caption = ""
ElseIf LblS.Caption Mod 2 <> 0 Then
LblP1.Caption = ":"
LblP2.Caption = ":"
End If
If LblS.Caption = 59 Then
TmrM.Enabled = True
LblS.Caption = 0
End If
End Sub
Private Sub TmrM_Timer()
If TmrM.Enabled = True Then
LblM.Caption = LblM.Caption + 1
TmrM.Enabled = False
If LblM.Caption = 59 Then
LblM.Caption = 0
End If
End If
End Sub
Es de tomar en cuenta que:
- Los numeros del reloj van a ir en Labels. También los dos puntos que los separan.
- Lbl es el prefijo de Label.
- LblS es el prefijo del Label de los segundo, LblM para minutos y LblH para las horas.
- Tmr es el prefijo de Timer.
- TmrS es el Timer de los segundos, TmrM para minutos y TmrH para las horas.
- LblP1 y LblP2 son los Labels de los dos puntos.
- El intervalo(Interval) que se le asignará a TmrS en la Ventana de Propiedades es 1000.
- El interval que se le asignará a TmrM y TmrH va a ser de 50 y Enabled=False para estos dos.
- LblP1 y LblP2 tendrán en la propiedad Caption esto ":" .
- LblS, LblM y LblH tendrán en Caption el valor 0, y la Alineación (Alignment) en Center.
Este es el código del semáforo:
Private Sub Form_Initialize()
ShpV.BackColor = vbGreen
TmrV.Enabled = True
TmrA.Enabled = False
TmrR.Enabled = False
TmrWin.Enabled = False
Label1.Visible = False
Label2.Visible = False
End Sub
Private Sub TmrV_Timer()
If TmrV.Enabled = True Then
TmrBlack.Enabled = True
TmrBlue.Enabled = True
End If
If TmrV.Interval = 3000 Then
ShpV.BackColor = vbBlack
TmrV.Enabled = False
TmrA.Enabled = True
End If
ShpA.BackColor = vbYellow
End Sub
Private Sub TmrA_Timer()
If TmrA.Interval = 1000 Then
ShpA.BackColor = vbBlack
TmrA.Enabled = False
TmrR.Enabled = True
End If
ShpR.BackColor = vbRed
TmrWin.Enabled = True
End Sub
Private Sub TmrR_Timer()
If TmrR.Interval = 3000 Then
ShpR.BackColor = vbBlack
TmrR.Enabled = False
TmrV.Enabled = True
End If
ShpV.BackColor = vbGreen
BlackCar.Left = 0
BlueCar.Left = 0
End Sub
Private Sub TmrBlack_Timer()
If ShpV.BackColor = vbGreen Then
BlackCar.Left = BlackCar.Left + 55
BlueCar.Left = BlueCar.Left + 36
End If
If ShpA.BackColor = vbYellow Then
BlueCar.Left = BlueCar.Left + 7
End If
End Sub
Private Sub TmrWin_Timer()
If ShpR.BackColor = vbRed Then
Label1.Visible = True
Label2.Visible = True
Label1.Top = Label1.Top + 8
Label2.Top = Label2.Top + 8
End If
If ShpV.BackColor = vbGreen Then
Label1.Visible = False
Label2.Visible = False
Label1.Top = 1560
Label2.Top = 1920
End If
End Sub
Diseño:
- La calle, las líneas blancas, la línea cuadriculada, el rectángulo amarillo del semáforo y los tres círculos que tiene el semáforo son todos objetos Shape, su prefijo será Shp.
- ShpV, ShpA, ShpR son los tres círculos del semáforo; verde, amarillo y rojo respectivamente.
- Habrán tres objetos Timer(Tmr), uno para cada Shp del semáforo. Estos Timers se llamarán TmrV, TmrA, y TmrR las ShpV, ShpA y ShpR respectivamente.
- Al ejecutarse el programa el ShpV tiene que estar en verde y los demás en negro.
- Las propiedades que tendrán que cambiar en los objetos ShpV, ShpA y ShpR serán: Shape:Circle, BackStyle:Opaque.
- La propiedad Interval de TmrV y TmrR será igual a 3000.
- La propiedad Interval de TmrA será igual a 1000.
FIN DE CLASE VII.
martes, 10 de junio de 2008
Visual Basic I - Clase VI
TAREA 3:
Hacer dos calculadoras con la apariencia vista en clases.
RESOLUCION
Calculadora 1:
Private Sub Form_Initialize()
TxtV1.Enabled = False
TxtV2.Enabled = False
LstOp.Enabled = False
TxtResult.Enabled = False
CmdOut.Enabled = False
TxtV1.Text = ""
TxtV2.Text = ""
TxtResult.Text = ""
End Sub
Private Sub CmdNew_Click()
TxtV1.Enabled = True
TxtV1.SetFocus
TxtV2.Enabled = True
TxtV1.Text = ""
TxtV2.Text = ""
TxtResult.Text = ""
CmdOut.Enabled = False
CmdNew.Enabled = False
End Sub
Private Sub TxtV1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub ' Esto es por si presiona el BackSpace
If KeyAscii <48 Or KeyAscii> 57 Then ' Esto no permite presionar una tecla que no sea un numero
KeyAscii = 0
End If
End Sub
Private Sub TxtV1_Validate(Cancel As Boolean)
If TxtV1.Text = "" Then
MsgBox ("Por favor, escriba un valor.")
Cancel = True
End If
End Sub
Private Sub TxtV2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii <48 Or KeyAscii> 57 Then
KeyAscii = 0
End If
End Sub
Private Sub TxtV2_Validate(Cancel As Boolean)
If TxtV2.Text = "" Then
MsgBox ("Por favor, escriba un valor.")
Cancel = True
End If
End Sub
Private Sub TxtV2_LostFocus()
LstOp.Enabled = True
LstOp.SetFocus
End Sub
Private Sub LstOp_Click()
CmdNew.Enabled = True
CmdOut.Enabled = True
CmdNew.SetFocus
If LstOp.Text = "Suma" Then
TxtResult.Text = Val(TxtV1.Text) + TxtV2.Text
ElseIf LstOp.Text = "Resta" Then
TxtResult.Text = Val(TxtV1.Text) - TxtV2.Text
ElseIf LstOp.Text = "Multiplicación" Then
TxtResult.Text = Val(TxtV1.Text) * TxtV2.Text
ElseIf LstOp.Text = "División" And TxtV1.Text <> 0 And TxtV2.Text <> 0 Then
TxtResult.Text = Val(TxtV1.Text) / TxtV2.Text
ElseIf LstOp.Text = "División" And TxtV1.Text = 0 And TxtV2.Text = 0 Then
MsgBox ("Esta división no se puede realizar.")
End If
End Sub
Private Sub CmdOut_Click()
Unload Me
End Sub
Calculadora 2:
Dim Seleccion As Integer
Private Sub Form_Initialize()
CmdNew.Enabled = True
TxtV1.Enabled = False
TxtV2.Enabled = False
TxtResult.Enabled = False
CmdCalcular.Enabled = False
CmdOut.Enabled = False
OptSuma.Enabled = False
OptResta.Enabled = False
OptMultiplicacion.Enabled = False
OptDivision.Enabled = False
End Sub
Private Sub CmdNew_Click()
CmdNew.Enabled = False
CmdOut.Enabled = False
TxtV1.Enabled = True
TxtV2.Enabled = True
TxtV1.Text = ""
TxtV2.Text = ""
TxtResult.Text = ""
TxtV1.SetFocus
OptSuma.Value = False
OptResta.Value = False
OptMultiplicacion.Value = False
OptDivision.Value = False
End Sub
Private Sub TxtV1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub ' Esto es Por si presiona el BackSpace
If KeyAscii <48 Or KeyAscii> 57 Then ' Si presiono una tecla que no es un numero
KeyAscii = 0
End If
End Sub
Private Sub TxtV1_Validate(Cancel As Boolean)
If TxtV1.Text = "" Then
MsgBox ("Por favor, escriba un valor.")
Cancel = True
End If
End Sub
Private Sub TxtV2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii "<"48 Or KeyAscii">" 57 Then
KeyAscii = 0
End If
End Sub
Private Sub TxtV2_Validate(Cancel As Boolean)
If TxtV2.Text = "" Then
MsgBox ("Por favor, escriba un valor.")
Cancel = True
End If
End Sub
Private Sub TxtV2_LostFocus()
OptSuma.Enabled = True
OptResta.Enabled = True
OptMultiplicacion.Enabled = True
OptDivision.Enabled = True
CmdCalcular.Enabled = True
OptSuma.SetFocus
TxtV1.Enabled = False
TxtV2.Enabled = False
End Sub
Private Sub CmdCalcular_Click()
If OptSuma.Value = True Then
Seleccion = 1
ElseIf OptResta.Value = True Then
Seleccion = 2
ElseIf OptMultiplicacion.Value = True Then
Seleccion = 3
ElseIf OptDivision.Value = True Then
Seleccion = 4
End If
Select Case Seleccion
Case 1
TxtResult.Text = Val(TxtV1.Text) + TxtV2.Text
Case 2
TxtResult.Text = TxtV1.Text - TxtV2.Text
Case 3
TxtResult.Text = TxtV1.Text * TxtV2.Text
Case 4
If OptDivision.Value = True And TxtV1.Text <> 0 And TxtV2.Text <> 0 Then
TxtResult.Text = TxtV1.Text / TxtV2.Text
ElseIf OptDivision.Value = True And TxtV1.Text = 0 And TxtV2.Text = 0 Then
MsgBox ("Esta división no se puede realizar.")
End If
End Select
CmdCalcular.Enabled = False
CmdNew.Enabled = True
CmdOut.Enabled = True
CmdNew.SetFocus
End Sub
Private Sub CmdOut_Click()
End
End Sub
Si alguna parte del código no es entendible entonces pregunten. Solo como aclaración:
En la calculadora 1: FrmCalculadora1 se refiere al nombre del formulario. TxtV1, TxtV2 y TxtResult son las tres casillas de texto. LstOp es la ComboBox donde se elige la operación. CmdNew y CmdOut son los botones de Nuevo y Salir respectivamente. Y en la vista de diseño del programa (osea cuando aparecen los objetos, no el código), se van a la ventana de propiedades de la ComboBox y en Style seleccionan DropDown List.
Para la calculadora 2: FrmCalculadora2 se refiere al nombre del formulario. TxtV1, TxtV2 y TxtResult son las casillas de texto. OptSuma, OptResta, OptMultiplicación y OptDivisión son las opciones que se presentan a la derecha de la pantalla. CmdCalcular, CmdNew y CmdOut son los botones de Calcular, Nuevo y Salir respectivamente.
Si quieren poner imagen en los botones entonces con un boton seleccionado se van a la ventana de propiedades del botón y ahí buscan donde dice Style y lo cambian a Graphical, con eso pueden poner una imagen cualquiera o cambiar el color del fondo del botón.
El código que puse ya está hecho bajo todas las condiciones que el maestro pidió:
1. No se permiten divisiones de 0 entre 0. Aparece un MsgBox cuando eso se intenta.
2. En ninguna casilla de texto(TextBox) se permite digitar letras ni signos, SOLO números.
3. El botón Resultado(CmdResult) siempre está deshabilitado.
4. El botón Nuevo(CmdNew) borra todo.
5. El cursor siempre empieza ubicado en la primera casilla.
6. No se pueden hacer operaciones con números negativos ni decimales.
Los dos códigos cumplen con esas condiciones como les repito. Cualquier duda comentar esta entrada.
FIN DE CLASE VI
Taringa Hackeado

Acabo de entrar a internet, como siempre a publicar en el blog, bajar pelis o algo y entro a Taringa y que me aparece una pagina rara. Creí que era algo con el DNS pero NO! HACKEARON TARINGA.NET. Los responsables son un equipo turco de 7 hackers que se autonombrean NetDevilz Co. sus sobrenombres son ZeberuS- GeCeCi - MiLaNo -SersaK - h4ckinger - The_Bekir - KinSize. Taringa! Inteligencia colectiva jaja!
lunes, 9 de junio de 2008
Visual Basic I - Clase V
1. Poner 4 casillas de texto alineadas verticalmente a la derecha y 4 Labels alieneados paralelamente a las casillas. Los labels serán llamados Valor1, Valor2, Operación y Resultado.
2. Hacer que el cursor aparezca en la primera casilla al iniciar el programa.
3. Hacer que despues que el usuario introduzca la palabra "Suma" y cambie de casilla presionando TAB, se haga automàticamente la suma y se muestre el resultado en la casilla ùltima.
Una forma de hacer el código sería así:
Private Sub Form_Initialize()
TxtV1.SetFocus()
End Sub
Private Sub TxtV1_GotFocus()
TxtV1.Text = ""
TxtV2.Text = ""
TxtOp.Text = ""
TxtResult.Text = ""
End Sub
Private Sub TxtOp_LostFocus()
If TxtOp.Text <> "Suma" Then
MsgBox ("Error de escritura")
Else
If TxtOp.Text = "Suma" Then
TxtResult.Text = Val(TxtV1.Text) + Val(TxtV2.Text)
End If
End If
Lo único que hay que explicar son los eventos, GotFocus es el evento que ocurre cuando a un objeto, en este caso la casilla de texto, le llega el cursor, con cursor me refiero a la barrita intermitente que aparece cuando uno va a escribir.
El evento LostFocus es cuando un objeto pierde el cursor, es decir cuando desplazamos el cursosr al siguiente objeto con TAB.
La palabra reservada Val lo que hace es convertir un cadena de caracteres en enteros, en este caso ingresaremos en las casillas 1 y 2 valores para que los sume, por eso se tiene que hacer una conversión para que el programa entienda que está trabajando con números no con letras, esa es la función de Val.
Los caracteres <> son Operadores Relacionales. Significan "diferente de", podría ser = "igual que", o > "mayor que", o < "menor que". Las palabras If, Then, Else y End If son una estructura condicional, hay varios tipos de estructuras condicionales, las iremos viendo poco a poco.
If es una estructura condicional simple, sirve para evaluar una condición lógica y permite ejecutar instrucciones diferentes para cuando resulte verdadera y falsa.
Las condiciones se cumplen o no por medio de los operadores relacionales que se usen (=, <, >, <>), se abre una condición con If y se cierra con End If. La sintaxis es simle:
If "Condición a cumplir" Then
"Acción que se hará al cumblir la condición"
End If
La estructura condicional doble plantea una acción en caso de que se cumpla y otra acción en caso de que no se cumpla, la sintaxis es esta:
If "Condición a cumplir" Then
"Acción que se hará al cumplir la condición"
Else
"Acción que se hará en caso de que no se cumpla la condición"
End If
La estructura simple anidada es cuando se encadenan una serie de condiciones en la misma estructura, se hace de la siguiente manera:
If "Condición a cumplir" Then
"Acción que se hará al cumplir la condición"
Else
If "Otra condición que se podría cumplir" Then
"Acción que se hará en este caso"
Else
If...
.
.
End If
End If
End If
La forma que nosotros estaremos utilizando más seguido es la siguiente:
If "condición" Then
"Acciones"
Else If "Otra condición" Then
"Acciones"
...
...
End If
Como podemos ver esto ofrece ventaja ya que no tenemos que cerrar tantas condiciones con End If sino que solamente una.
FIN DE CLASE V.
Visual Basic I - Clase IV
1. Initialize.
2. Refresh.
3. Load.
Refresh es un método, es decir, es ordenado por el usuario, no es automático. Es bueno hacer que en cada botón exista este método, sirve para actualizar la información que esta siendo presentada.
Cuando se ejecuta un formulario ocurren dos eventos: Load y Initialize.
Load ocurre cuando el formulario es cargdo de la memoria de la PC, todos los objetos tienen un evento Load.
Initialize se ocupa para establecer valores predeterminados a los objetos y para inicializar variables. Como ejemplo, en la tarea donde teniamos que habilitar las TextBox porque aparecían deshabilitadas por default, las pusimos deshabilitadas con la propiedad Enabled=False en la ventana de propiedades; pero si lo hubieramos querido hacer con código, se daba doble click en el formulario, y luego buscamos el código para el evento "initialize", eso esta en la lista de arriba a la derecha. Entonces entre
Private Sub Form_Initialize()
End Sub
ahi en medio se pone Text1.Enabled=False y asi con todos los que queramos deshabilitar al principio.
Private Sub y End Sub marcan el ninicio y final respectivamente de un procedimiento.
TAREA 2:
Hacer en el código de la TAREA 1 lo siquiente:
1. Aparezcan deshabilitadas las 5 casillas desde el inicio, pero hacerlo con código, no con la ventana de propiedades.
2. Se habiliten solo las primeras tres de las cinco casillas al dar click en "Nuevo".
3. Borrar la información que haya en las 5 casillas al dar click en "Nuevo"
3. Se ponga el cursor sobre la casilla de texto 1(Text1) al habilitar las casillas con "Nuevo".
RESOLUCION:
Private Sub Command1_Click()
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub
Private Sub Form_Initialize()
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
Text5.Enabled = False
End Sub
Text1.SetFocus lo que hace es que cuando se da click al botón 1, automáticamente situa el cursor en la casilla de texto 1.
Text1.Text = "" lo que hace es que cuando se da click al botón 1, borre lo que sea que este escrito en la casilla uno. Las comillas significan espacio en blanco.
FIN DE CLASE IV
jueves, 5 de junio de 2008
Visual Basic I - Clase III
- Barra de Herramientas:
- Es la barra ubicada a la izquierda de la pantalla, contiene todos los elementos para diseñar.
- Explorador de Proyectos:
- Es una de las secciones ubicadas a la derecha de la pantalla. Permite ver los proyectos que tenemos abiertos.
- Ventana de Propiedades:
- Es donde se controlan las características de los objetos, en caso de cerrarla accidentalmente, se puede restaurar con F4
Si queremos ver el funcionamiento en tiempo real de nuestro programa se presiona F5, y esto correrá nuestro programa de acuerdo al código programado. En la ventana de propiedades, ahi varias propiedades que estaremos usando con frecuencia, entre estas están:
- Nombre:
- Cambia el nombre con el cual es almacenado un objeto en memoria, para facilitar el manejo de estos objetos se utilizan prefijos. Para un Formulario(Form) al cambiar el nombre siempre tendrá como prefijo "Frm" sin comillas y seguido del nombre que queramos(FrmEmpleados, FrmPlanilla, etc.), los objetos TextBox(Text) tendrán siempre el prefijo "Txt" y los botones(command) tendrán "Cmd"
- Caption:
- A diferencia de "Nombre", esta propiedad cambia únicamente el texto que se muestra en un objeto, pero no se puede hacer referencia a un objeto por medio de la propiedad Caption, por ejemplo si queremos que un botón diga encima "Salir", esta propiedad es la que contendrá este nombre.
- Height:
- Permite cambiar la altura de un objeto.
- BackColor:
- En el objeto Form, cambia el color de fondo de la ventana; está propiedad está en varios objetos.
- BackStyle:
- Indica la transparencia u opacidad de un objeto generalmente Label.
- Autosize:
- Determina si un control es redimensionado automáticamente de acuerdo al texto(caption) que tiene.
- MinButton:
- Cuando está en False, quita el botón para minimizar ventana de nuestro programa.
- MaxButton:
- Cuando está en False, quita el botón para maximizar ventana de nuestro programa.
- ControlBox:
- Cuando está en False deshabilita los botones de minimizar, maximizar y salir del programa.
- Siempre lo tendremos en normal, esta propiedad determina la forma como aparece la pantalla al ejecutar el programa. Puede ser minimizada, maximizada, o normal, que es el tamaño predeterminado que uno le da.
- BorderStyle:
- Siempre lo tendremos como Sizabled, este modo permite modificar el tamaño de la ventana durante la ejecución del programa, todos las demás opciones de esta propiedad no lo permiten.
- Picture:
- Esta propiedad permite poner una imagen como fondo de nuestro programa.
- Icon:
- En la ventana donde estamos diseñando nuestro programa, la que dice Form, al lado izquierdo de ese nombre está un icono pequeño. Esta propiedad noc permite ponerle un icono de nuestra elección.(La imagen tiene que estar en formato .ico)
El ejercicio que haremos es el siguiente:
1. Abrir VB6, y luego seleccionamos la opción Standard EXE.
2. Ubicar 4 objetos "Label" en el la ventana de nuestro formulario.
3. Ahora, seleccionar los 4 Label(tecla Ctrl+Click en cada uno).
4. Con los 4 seleccionados buscar en la Ventana de Propiedades la opción BackStyle y ponerla en Transparent; y la propiedad AutoSize ponerla en True.
5. Cambiar el texto mostrado en cada Label para que digan Código, Nombre, Sueldo y Descuento respectivamente.
6. Poner 4 objetos TextBox, cada uno al lado de uno de los Label.
7. Seleccionar los 4 TextBox y borrar el texto que tienen(Caption).
8. Con los 4 TextBox aún seleccionados, cambiar la propiedad Height a 350.
De aquí en adelante pueden ir experimentando para que sirve cada propiedad dentro de este nuevo proyecto que hicimos. Ahora estamos tratando principalmente la interfz gráfica del VB6, en clases posteriores se verá la codificación de este mismo programa.
FIN DE CLASE III
Visual Studio 6 Enterprise Edition - Descarga
Para descargar el torrent de Visual Studio 6 dar CLICK en la imagen.

Para descargar el gestor de descargas FlashGet dar CLICK en la imagen.

miércoles, 4 de junio de 2008
Visual Basic I - Clase II
Variable: Es un espacio en memoria con un nombre que puede contener datos de cualquier tipo y que su contenido puede variar durante la ejecucion del programa.
Identificador: Es la forma de identificar variables (tambien constantes, objetos,y casi todo lo que utilizamos en programación).
Programa: Es uan aplicación diseñada para resolver uan tarea. Es una serie de comandos ordenados lógicamente que permiten indicarle a la computadora un proceso o tarea a ejecutar.
Lenguaje de Programación: Es una serie de comandos con una sintaxis predeterminada y son para poder comunicarse con la computadora.
Comando: Es una palabra reservada de cualquier lenguaje de programación, lo que significa que no la podemos usar como identificador de una variable que hagamos.
Formulario: Llamaremos así a la estructura general donde están todos los objetos, es todo el código de un programa. Lo primero que se hace para iniciar un código es declarar las variables que utilizaremos en el. Dim es el comando utilizado para declarar variables que vamos a utilizar en un código. Un ejemplo de declaración de una variable es este:
Dim Nombre As String
Que significa que vamos a utilizar una variable llamada Nombre dentro del programa y que contendrá el tipo de dato llamado Cadena(string).
Hay muchos tipos de datos, eso pueden googlearlo. La escritura cambia en Visual Basic, aqui están los tipos de datos básicos con su denominación en VB:
Carácter o Cadena(String): Son caracteres alfanuméricos, osea que pueden ser letras y números. Ejemplos pueden ser un nombre, una dirección, e incluso un número de carnet debido a que lleva guiones.
Numérico(Single, Integer, Double, Long): Son caracteres numéricos y su variedad depende de la cantidad de decimales que tendrá el numero. Por ejemplo si una variable es declarada como Integer entonces solo podrá almacenar números enteros(sin decimales). Single maneja hasta 9 decimales, Double maneja hasta 14 decimales y Long maneja hasta 17.
Lógico(Boolean): Solo puede tener dos valores y son Falso(False) y Verdadero(True). Por ejemplo si tenemos un TextBox y vemos sus propiedades, una de ellas es Enabled que aparecerá por default como True. (TextBox1.Enabled=True).
Fecha(Date): Por lógica se deduce que maneja fechas dentro de un código.
Ahora, como ya mencionamos, se usan identificadores para nombrar variables, estos identificadores tienen estas reglas:
1. No pueden llevar espacios en blanco.
2. No deben llevar puntos, porque en VB y en la POO, el punto (.) indica pertenencia. En el ejemplo anterior vemos "TextBox.Enabled=True", nos dice la propiedad Enabled que pertenece a el objeto TextBox tiene como valor True.
3. No pueden llevar caracteres especiales.
4. No pueden ser palabras reservadas del lenguaje de programación.
Las variables, además de poseer un tipo de dato, también tienen un alcance: Local y Pública. Las Locales solo existen en la porción de código donde se declaran, mientras que las Públicas existen o tendrán validez en todo el formulario(código) que hacemos y se declaran en una parte del formulario llamada "Genaral - Declaraciones", todo lo que se pone ahí, incluídas variables, será Público.
TAREA 1:
Hacer un formulario con 5 casillas de texto (Text) llamadas Código, Nombre, Sueldo, Descuento y Sueldo Líquido. Y dos botones(Command) llamados "Nuevo" y "Salir".
Las casillas de texto tienen que estar deshabilitadas(la propiedad Enabled) por default, hacer que al apretar el botón "Nuevo" Las casillas se habiliten.
Recordar que estamos trabajando en VB6, no es igual a VB 2005 Express Edition.
RESOLUCION:
Private Sub Command1_Click()
Text1.Enabled=True
Text2.Enabled=True
Text3.Enabled=True
Text4.Enabled=True
Text5.Enabled=True
End Sub
FIN DE CLASE II.
martes, 3 de junio de 2008
Visual Basic I - Clase I
Visual Basic I, Clase I.
Evaluaciónes:
Examen Teórico - 20%
Examen Práctico - 20%
Tarea 1 - 15%
Tarea 2 - 15%
Tarea 3 - 30%
Definiciones que usaremos:
Visual Basic: Es un lenguaje de programación orientado a objetos de propósito general, ambientado en Windows.
Objeto: Elementos que ayudan a formar la interfaz de un sistema, pueden ser controles, botones, ventanas, listas, etc.
Los objetos tienen propiedades (características), eventos y métodos, la Programación Orientada a Objetos (POO), está basada en estos tres elementos.
Las propiedades son características modificables de un objeto.
Los eventos son acciones que ocurren automáticamente en reacción a lo que el usuario o el sistema hace.
Los métodos por su parte son acciones que el objeto es capaz de hacer pero con control del usuario, no son automáticos.
Para entender mejor todo esto, pondré un ejemplo:
En Visual Basic al lado izquierdo se encuentran una serie de herramientas que sirven para modelar la interfaz gráfica de nuestro programa. Entre ellas encontraremos un elemento llamado "TextBox". A continuación se describen algunas propiedades, métodos y eventos de este elemento.
Propiedades
Nombre.
No es directamente un nombre, es solo una "etiqueta" con la cual se hace referencia a este objeto.
Enabled.
Permite establecer si nuestro objeto está habilitado o no. Por ejemplo, al llenar algun formulario en internet, a veces piden un "ZIP code", eso depende del pais en que este, para El Salvador no hay, por tanto, esta entrada de texto estará deshabilitada, eso se establece con esta propiedad "Enabled".
Text.
Esta permite introducirle texto a nuestro TextBox. Como ejemplo, si a un objeto "Sueldo" le queremos introducir el valor 100, lo correcto sería así:
Sueldo.Text=100
Visible.
Permite determinar si nuestro objeto estará visible o no.
Eventos
Change
Este evento ocurre por ejemplo cuando se introduce un valor al TextBox. Si es 1000, significa que se digitaron 4 números, son 4 cambios, por tanto hubo un evento Change por cada uno de ellos.
GotFocus
Este evento ocurre cuando está enfocado un elemento, ya sea botón o lo que sea, para entender mejor, cuando uno descarga un archivo de la web, siempre pregunta que queremos hacer si "Abrir archivo" o "Guardar archivo" y siempre aparece una marcada(sombreada o con una linea punteada) por default, ese es un evento GotFocus en ese botón.
Validate
Es cuando se tienen que pasar ciertas condiciones para que un objeto tenga una acción.
Métodos
Refresh
Es lo que conocemos como actualizar, es una orden que no es automática sino que es controlada por el usuario.
Otros métodos que hay son: Unload(Del objeto Salir) y AddItem.
FIN DE CLASE I.
lunes, 2 de junio de 2008
UML - Examen Final de Ciclo
5o PARCIAL UML
Indicaciones: Esta evaluación corresponde al 40% de la tercera evaluación, el 60% restante corresponde al trabajo ex-aula.
1. En el plan de administración del proyecto detalle las cinco fases del Plan de Proceso Administrativo. (50%)
2. En el plan de administración del proyecto detalle las tres fases de la Organización del Proyecto. (30%)
3. Explique que diferencias importantes encuentra entre el Rational Rose y las herramientas CASE de libre distribución. (20%)
UML - Casos de Uso
UML - Proyecto Final, Marco de Trabajo del Plan de Administración de Contra-ME.
Marco de Trabajo del Plan de Administración del Sistema de Contra-ME.
1. Descripción General.
1.1 Resumen del Proyecto
1.1.1 Propósito, Alcance y Objetivos. El propósito del proyecto es desarrollar un sistema alojado en la web para la empresa Contra-ME cuyo objetivo será el manejo y administración de la información de empresas que ofrecen empleo y de solicitantes de empleos. El sistema de Contra-ME permitirá el registro de los candidatos y de las empresas, así como también la modificación de cuentas. También ofrecerá el servicio de “Cálculos Aparte”, donde se incluirá Indemnización, AFP y Renta.
1.1.2 Suposiciones, Restricciones y Condiciones. Las condiciones son las siguientes:
· El plazo de entrega debe cumplirse.
· La restricción del presupuesto debe cumplirse.
· El sistema debe de ser estable, confiable y seguro.
· El diseño y construcción del sistema deben estar documentados y estructurados de forma abierta para permitir la posible adición de funciones.
· La interfaz del sistema debe ser intuitiva para su fácil manejo por parte del usuario final.
1.1.3 Elementos del proyecto sujetos a entrega. El sistema de información Contra-ME se entregará ya finalizado 8 semanas después del inicio del proyecto e incluirá su respectiva documentación para el usuario.
1.1.4 Calendarización y resumen del proyecto. A continuación se detallan los requisitos de personal y el presupuesto de cada Workflow:
· Workflow de los requisitos: Una semana, dos personas, 100 dólares.
· Workflow del análisis: Una semana, dos personas, 100 dólares.
· Workflow del diseño: Dos semanas, tres personas, 300 dólares.
· Workflow de la implementación: Tres semanas, tres personas, 450 dólares.
· Workflow de las pruebas: Una semana, tres personas, 150 dólares.
El tiempo de desarrollo total es de 8 semanas y el costo interno total será de 1100 dólares.
1.2 Evolución del plan de administración del proyecto. La empresa Contra-ME debe aceptar cualquier cambio realizado en el plan de administración del proyecto antes de su implementación. A su vez, todos los cambios que puedan surgir serán debidamente documentados para mantener actualizado el plan de administración del proyecto.
2. Materiales de consulta.
3. Definiciones y acrónimos.
Usuario – Es el usuario final del sistema de información de Contra-ME, podrá ser un solicitante, una empresa o un usuario anónimo.
Sistema – Se refiere al sistema de información de Contra-ME.
4. Organización del proyecto.
4.1 Interfaces externas. Un miembro del equipo de desarrollo se contactará con un representante previamente designado de Contra-ME para informar sobre el progreso y posibles cambios y modificaciones.
4.2 Estructura interna. El equipo de desarrollo del sistema está compuesto por: Arely (propietaria), Jessé (diseñador de sistemas) y Julio (analista de sistemas).
4.3 Funciones y responsabilidades. En el workflow de requisitos los involucrados serán Arely y Julio. En el worklow del análisis los responsables serán Julio y Jessé. En los workflows de diseño, implementación y pruebas todos los miembros del equipo tomarán una parte del trabajo.
5. Planes del proceso administrativo.
5.1 Plan inicial.
5.1.1 Plan de estimación. Como ya se mencionó se prevé que el sistema será entregado en su totalidad en 8 semanas y que el costo interno total será de 1100 dólares aproximadamente.
5.1.2 Plan de contratación de personal. Arely se necesitará en todas las semanas a excepción de la 2a, Jessé se necesitará en todas las semanas a excepción de la 3a y Julio estará presente durante las 8 semanas.
5.1.3 Plan de adquisición de recursos. Todo lo que utilizaremos (hardware, software y herramientas CASE) ya está adquirido. El sistema de Contra-ME se entregará instalado y funcionando en un servidor de la empresa Contra-ME.
5.1.4 Plan de capacitación para el personal del proyecto. No es requerido para la implementación de nuestro sistema.
5.2 Plan de trabajo.
5.2.1 Actividades de trabajo y asignación del calendario.
Semana 1: Arely y Julio se reunirán con el representante de Contra-ME para determinar los requisitos para el sistema.
Semana 2: Julio y Jessé realizarán la etapa de análisis del sistema, redactarán el documento de especificaciones, obtendrán la aprobación del cliente y producirán el plan de administración del proyecto.
Semana 3, 4: El equipo de desarrollo producirán e inspeccionarán los artefactos de diseño.
Semana 5, 6, 7: El equipo de desarrollo implementará, inspeccionará e integrará cada módulo del sistema.
Semana 8: Documentación, pruebas de integración y de módulos.
5.2.2 Asignación de recursos. Los tres miembros del equipo trabajarán en forma separada en los módulos y áreas asignadas. El equipo de desarrollo se reunirán de ser necesario todos los días a una hora conveniente para los tres, donde se informará sobre el avance del proyecto. Las reuniones formales con el representante de Contra-ME serán el día viernes en la noche en un lugar que sea de la preferencia del cliente. Arely será la responsable de la supervisión de los miembros del equipo, su progreso, implementación de los respectivos módulos y la calidad de cada uno, así como también tendrá a su cargo la documentación general y actualización de la misma.
5.2.3 Asignación del presupuesto. El presupuesto para cada flujo de trabajo (Workflow) es el siguiente:
| Workflow de los Requisitos | 100 |
| Workflow del Análisis | 100 |
| Workflow del Diseño | 300 |
| Workflow de la Implementación | 450 |
| Workflow de las Pruebas | 150 |
| Total | 1100 |
5.3 Plan de Control. Arely deberá aprobar y documentas cualquier cambio que pueda afectar el tiempo de desarrollo o el presupuesto. Para controlar el buen funcionamiento de los módulos creados, cada integrante del equipo de desarrollo los implementará en su parte de desarrollo para comprobar la interacción y acople que deban tener. Arely controlará el tiempo de desarrollo y lo hará por medio de reuniones al cabo de cada día de trabajo. Cualquier problema que pueda surgir en cualquier fase se informará a Arely.
5.4 Plan de manejo de riesgos. El sistema deberá someterse a pruebas intensivas y no comparativas debido a la falta de un sistema similar.
Debido a la posible inexperiencia de los usuarios finales del sistema, la interfaz del programa debe ser intuitiva y se debe prestar atención al análisis y diseño del mismo.
Se deben de hacer pruebas de integración en cada uno de los códigos escritos por cada miembro del equipo.
Las garantías especificadas aparte dan respaldo a fallos que puedan ocurrir a la hora de compilar el programa o al momento de implementación debido al hardware. Nótese que no cubre fallos debido a incapacidad de hardware para manejar el programa, en este caso se consultará la parte de ”Hardware” en el workflow de los requisitos presentado al principio.
5.5 Plan de cierre del proyecto. No es aplicable en este sistema.
6. Planes del proceso técnico.
6.1 Modelo del proceso. Se utilizara el Modelo Unificado de Modelaje.
6.2 Métodos, herramientas y técnicas. Los workflows se realizarán de acuerdo a lo establecido en el proceso unificado, el sistema será programado en Visual Basic.
6.3 Plan de infraestructura. El sistema será desarrollado utilizando ArgoUML, en una computadora con Windows XP con Service Pack 2.
6.4 Plan de aceptación del producto. El sistema será promovido para su aceptación en cada reunión que se mantenga con el cliente y apegándose a los pasos del proceso unificado.
7. Planes de procesos de soporte.
7.1 Plan del control de la configuración. Para la configuración de todos los códigos a implementar se utilizará el programa Concurrent Versions System (CVS), también conocido como Concurrent Versioning System que es una aplicación informática que implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en los ficheros (código fuente principalmente) que forman el sistema y permite que los distintos desarrolladores colaboren.
7.2 Plan de pruebas. Se llevará a cabo basándonos en el workflow de pruebas del proceso unificado.
7.3 Plan de documentación. La documentación también irá de acuerdo a lo establecido por el proceso unificado.
7.4 Plan de aseguramiento de la calidad. Los integrantes del equipo serán los encargados de hacer pruebas entre sus códigos a medida que se desarrolla el sistema.
7.5 Plan de revisiones y auditorías. Arely será quién responda por las pruebas de integración de las partes de código asignadas a cada miembro del equipo y luego, todos los integrantes del equipo aplicarán las pruebas exhaustivas al sistema.
7.6 Plan de resolución de problemas. Como ya se aclaró en la parte final del punto 5.3, cualquier problema que se presente en cualquier fase del desarrollo del sistema deberá ser reportado con Arely quién propondrá un plan para solucionar el inconveniente.
7.7 Plan de control de los subcontratistas. Este punto no es aplicable en el desarrollo de este sistema.
7.8 Plan de mejora del proceso. Todas las actividades se realizarán de acuerdo a el plan de Contra-ME para avanzar de nivel en el SW-CMM, lo cual se discutirá en alguna de las reuniones que se sostengan con el representante de Contra-ME. El SW-CMM (Modelo de Madurez de la Capacidad para el Desarrollo de Software por sus siglas en inglés) es un modelo de procesos para el desarrollo y mantenimiento de sistemas de software, diseñado sobre criterios específicos. Los niveles son: 1) Inicial. 2) Repetible, 3) Definido, 4) Gestionado y 5) Optimizado.
8. Planes adicionales. Componentes adicionales a discutir con el cliente:
Seguridad – Se necesitará una contraseña para el ingreso de parte de los empleados de Contra-ME al sistema.
Capacitación. Cualquier duda que surja en el uso del sistema deberá ser referida a Arely y ella contestará sin costo alguno durante un tiempo límite de seis meses.
UML - Herramientas CASE
Esta es una de las tareas finales que dejo el ing. Portillo en la materia de UML.-
Herramientas CASE.
Las herramientas CASE (Ingeniería de Software Asistida por Ordenador por sus siglas en inglés) son aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, calculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras. Sus objetivos son los siguientes:
1. Mejorar la productividad en el desarrollo y mantenimiento del software.
2. Aumentar la calidad del software.
3. Mejorar el tiempo y coste de desarrollo y mantenimiento de los sistemas informáticos.
4. Mejorar la planificación de un proyecto
5. Aumentar la biblioteca de conocimiento informático de una empresa ayudando a la búsqueda de soluciones para los requisitos.
6. Automatizar, desarrollo del software, documentación, generación de código, pruebas de errores y gestión del proyecto.
7. Ayuda a la reutilización del software, portabilidad y estandarización de la documentación
8. Gestión global en todas las fases de desarrollo de software con una misma herramienta.
9. Facilitar el uso de las distintas metodologías propias de la ingeniería del software.
Herramienta dirigida al apoyo de fases de planificación, análisis de requisitos y estrategia de desarrollo apoyándose en diagramas UML. Es una aplicación de diagramado de UML escrita en Java y publicada bajo la Licencia BSD Open Source. Dado que es una aplicación Java, está disponible en cualquier plataforma soportada por Java.
El Magazine de Desarrollo de Software entrega premios anuales a herramientas de desarrollo de software populares en varias categorías. En 2003 ArgoUML fue una de las finalistas en la categoría "Design and Analysis Tools". ArgoUML recibió un premio "runner-up"(revelación), derrotando a muchas herramientas comerciales.
Sin embargo, desde la versión 0.20, ArgoUML está incompleto. No es conforme completamente a los estándares UML y carece de soporte completo para algunos tipos de diagramas incluyendo los diagramas de secuencia y los de colaboración.
“A mediados del 2005, cuando empezaba un desarrollo más o menos grande necesité de una herramienta para llevar el diseño del sistema que estaba desarrollando, en ese tiempo buscado y buscando encontré un sin fin de herramientas muchas de ellas propietarias de las cuáles en un principio por su facilidad empecé a usar Case Studio. La comencé a usar en modo demo, recuerdo que por esos días estaba usando Windows ya que era con lo que contaba en la empresa donde trabajaba, por lo que seguí usando Case Studio, pero un mes después tuve la oportunidad de adquirir mi propia laptop por lo que al adquirirla y recién desempacada lo primero que hice fue particionar el disco duro para instalarle una de las versiones de Ubuntu que empezaba a ponerse de moda.
Características de Argo UML.
Es una herramienta basada en los estandares del Lenguaje Unificado de Modelaje(UML) y Model Driven Arquitecture (MDA). E s de codigo abierto y libre distribución, licenciado bajo una versión modificada de GNU GPL (GNU General Public License por sus sigla en inglés).
Nació con el objetivo de reemplazar grandes aplicaciones comerciales de la misma rama como Rational Rose. Star UML soporta la mayoría de los tipos de diagramas especificados en UML 2.0. Sin embargo, actualmente faltan los diagramas de Objeto, Paquete, Tiempo y Visión Interactiva de Diagramas (aunque los dos primeros pueden ser adecuadamente modelados con el editor de diagramas de clases).
Características de Star UML.
- · Soporte completo al diseño UML.
- · Diagramas de casos de uso.
- · Diagramas de clase.
- · Diagramas de secuencia.
- · Diagramas de colaboración.
- · Diagramas de estado.
- · Diagramas de acitvidad.
- · Diagramas de componente.
- · Diagramas de despliegue.
- · Diagramas de composición estructural (UML 2.0)
- · Define elementos propios para los diagramas sin pertenecer necesariamente estos al estandar de UML.
- · Es capaz de generar código a partir de los diagramas y viceversa.
- · Soporta los lenguajes C++, C# y Java.
- · Genera documentación en Word, Excel y Powerpoint sobre los diagramas.
- · Patrones GoF (Gang of Four), EJB (Enterprise JavaBeans) y personalizados.
- · Plantillas de proyectos.
- · Es posible crear plugins para el programa.
Altova UML.
Sin embargo Altova UML no implementa rodos los tipos de diagramas definidos en la especificación de UML 2.1, en cambio permite construir nueve de los más comunes y útiles tipos de diagramas UML. La experiencia de diseño con esta herramienta termina siendo una combinación entre Visio y Visual Studio.
Los diagramas son organizados en una jerarquía de paquetes y los puedes manejar de dos formas, ya sea en la vista de modelo (que muestra la jerarquía entera), o en la vista de diagrama (donde son agrupados por tipo de diagrama). Tambien se pueden compartir proyectos entre uno o mas proyectos de UModel. Además trae ya pre configurados algunos subproyectos que contienen, por ejemplo, tipos de datos en Java y C# para que se puedan incorporar fácilmente en modelos creados por el usuario.
Se puede utilizar UModel para generar codigo en Java o C#; o bien, importar clases de Java o C# para construir los diagramas UML correspondientes. La generación de código está basada en plantillas, que son totalmente modificablesy así te permite un alto nivel de control sobre el código generado.
En general, UModel es una manera muy servicial de generar desde un simple diagrama UML hasta una aplicación muy personalizada junto con las plantillas de código en C# y Java.
Características de Altova UML.
- Función Drag-and-Drop
- Permite transición del programa a C# y Java, y viceversa.
- Diagramas de Casos de Uso
- Diagramas de clase
- Diagramas de Objeto
- Diagramas de Componente
- Diagramas de despliegue
- Diagramas de actividad
- Compuesto de diagramas de estructura
- Diagramas de secuencia
- Diagramas de Estado de máquina
Rational Rose.
Rational Rose es la herramienta CASE que comercializa Rational Software Corporation. Esta herrmaienta soporta de forma completa la especificación del UML 1.1. Propone la utilización de cuatro tipos de modelo para realizar un diseño del sistema, utilizando una vista estática y otra dinámica de los modelos del sistema, uno lógico y otro físico. Permite crear y refinar estas vistas creando de esta forma un modelo completo que representa el dominio del problema y el sistema de software.
Rational Rose Enterprise es la mejor elección para el ambiente de modelado que soporte la generación de código a partir de modelos en Ada, ANSI C++, C++, CORBA, Java™/J2EE™, Visual C++® y Visual Basic®. Como todos los demás productos Rational Rose, proporciona un lenguaje común de modelado para el equipo que facilita la creación de software de calidad más rápidamente. Trabaja apropiadamente con Windows 2000, NT y XP.
Características de Rational Rose.
- Soporte para análisis de patrones ANSI C++, Rose J y Visual C++ basado en "Design Patterns: Elements of Reusable Object-Oriented Software"
- Característica de control por separado de componentes modelo que permite una administración más granular y el uso de modelos
- Soporte de ingeniería Forward y/o reversa para algunos de los conceptos más comunes de Java 1.5
- La generación de código Ada, ANSI C ++, C++, CORBA, Java y Visual Basic, con capacidad de sincronización modelo- código configurables
- Soporte Enterprise Java Beans™ 2.0
- Capacidad de análisis de calidad de código
- El Add-In para modelado Web provee visualización, modelado y las herramientas para desarrollar aplicaciones de Web
- Modelado UML para trabajar en diseños de base de datos, con capacidad de representar la integración de los datos y los requerimientos de aplicación a través de diseños lógicos y físicos
- Capacidad de crear definiciones de tipo de documento XML (DTD) para el uso en la aplicación
- Integración con otras herramientas de desarrollo de Rational
- Capacidad para integrarse con cualquier sistema de control de versiones SCC-compliant, incluyendo a Rational Clear Case
- Publicación web y generación de informes para optimizar la comunicación dentro del equipo
Desarrollo Iterativo.
