domingo, 12 de marzo de 2023

D&C SHOP

D&C SHOP

 Esta es una microempresa hecha para la comodidad de su mascota, los productos de muy buena calidad y al mejor precio.  Esta microempresa cuenta con 8 colaboradores capacitados para brindar un buen servicio y venta de los productos ofrecidos por esta empresa.

ubicación: Villavicencio

gerente: karol nicoll vidal

PRODUCTO

Casas para perros
  • Materiales
Esmaltes de agua.
Madera seca Molduras (Marcos y guardapolvo)
Cola fría y PVA. Tornillos para madera. Clavos para madera.
precio
$72.000 COP


Camas para perros

Materiales
Poliéster: Es una opción ideal para el frío porque retiene el calor y a pesar de no parecer suave, es realmente cómodo para que tu perrito se acurruque por largos ratos. ⦁ Algodón: Un material típico que es una opción segura de calidez.
Precio
Poliéster: $110.000
Algodón: $80.000

Platos para perros
                                                        Materiales
acero inoxidable: 
Los mejores platos para tu perro son los de acero inoxidable. No sólo porque son los más resistentes, sino porque son fáciles de limpiar, no guardan bacterias y no contienen sustancias tóxicas que le puedan hacer daño a tu perro.
Precio
$20.000

Juguetes para perros



Materiales

de pende del producto que desee llevar.
Precio
juguetes o packs desde $5.000
packs: de $5.000 $10.000, $25.000, $40.000, $52.000, $80.000, $120.000
Juguetes: de $10.000, $12.000, $15.000, $18.000, $22.000, $25.000, $29.000, $34.000, $37.000, $40.000

Camas para gatos

Materiales
Podemos encontrar fabricados con materiales naturales (como lana natural) o madera (bambú).
Precio
Lana natural:$25.000
Bambú:$40.000


  • Caja de arena para gatos



Materiales

plástico con pala recogedora incluida.
Precio
$55.000




Muebles para gatos

Materiales
microfibra; imitación de ante; tela vaquera, poliéster, rayón, nailon o acrílico sintéticos.
Precio
desde $140.000 hasta $520.000


Comida para cachorros de alta calidad.


precio
Dog chow:bulto:$190.000
Ringo:bulto:$170.000
Royal canin:$120.000
Nupec:$150.000
Hill´s:$240.000


Correa, arnés y collar


Materiales

nylon
precio
desde $20.000$ hasta $190.000




Golosinas o premios seguros para cachorros

materiales
Galletas con relleno de carne. Uno de los snacks predilectos por los perros son las galletas con rellenos de carne. ...
Huesos rellenos de mantequilla de maní
Blue Bits.
precio
desde $15.000 hasta $130.000

Peines para su pelaje                                                   
                                                                                         materiales
ABS y acero inoxidable Color del artículo: azul/verde/blanco Tamaño: 19,8 x 11,5 x 6,6 cm Lista ...
precio
$85.000,$42.000,$30.000,$12.000


medios de pago
trasferencia: 913492744                       numero de celular: 3215001925
nequi: 3215001925                                instagram: @D&C SHOP
Bancolombia: 58720184                       facebook: @D&C SHOPS
daviplata: 3215001925
efectivo

sábado, 17 de noviembre de 2007

ASISTENTES DE EVENTOS

ASISTENTES


Visual Basic tiene algunas herramientas y asistentes para la creación de clases y de sus componentes (propiedades, métodos, funciones y eventos). El primero de ellos se encuentra en el menú HERRAMIENTAS,AGREGAR PROCEDIMIENTO y despliega una pantalla que permite seleccionar si se desea crear un procedimiento (método), una propiedad, una función o un evento; definir su alcance y su nombre. Esto genera un esqueleto de función, propiedad, método o evento que deberá adecuar a sus necesidades (agregar argumentos, cambiar el tipo de datos que por defecto es Variant para propiedades y funciones).





Luego estas propiedades, métodos, funciones o eventos pueden consultarse desde el examinador de objetos. Como se ha visto al utilizarlo, el examinador de objetos presenta no solo la estructura de uno de éstos sino también una definición. Esta definición se establece en una pantalla a la que se accede desde el menú HERRAMIENTAS, ATRIBUTOS DEL PROCEDIMIENTO…Donde se selecciona el miembro a describir en el cuadro combinado superior y en la caja de texto Descripción se escribe la descripción. En el botón Avanzados se configuran otros atributos al miembro seleccionado.





También hay otro asistente para crear clases que se habilita desde los complementos, llamado Utilidad Generador de clases de VB6 y se activa este, el cual estará disponible desde el menú COMPLEMENTOS.





En esta pantalla se definen las propiedades, métodos, eventos y tipos enumerados de la nueva clase que se esté creando, e incluso puede definirse sus atributos, o sea, las ayudas que se visualizarán en el examinador de objetos.
También desde aquí se pueden crear colecciones de objetos. Luego, desde el menú ARCHIVO, ACTUALIZAR PROYECTO o desde el teclado con Ctrol+S se actualizan las clases utilizadas en el proyecto. Este asistente es muy útil e intuitivo en su forma de utilizarse; luego solo habrá que escribir las sentencias correspondientes a cada propiedad o método creado.

SENTENCIAS Y VARIABLES DE CONTROL DEL VISUAL BASIC




LAS SENTECIAS DE CONTROL


son vitales para la construcción de un programa eficiente ya que permiten controlar el flujo del programa. Todas las decisiones se toman a través de este tipo de estructuras. Hay dos tipos de sentencias de control: sentencias condicionales y bucles. Las sentencias condicionales toman decisiones en base a o más una comparaciones lógicas y los bucles repiten una serie de sentencias mientras o hasta que se cumpla la condicón lógica. Antes de continuar es necesario definir las comparaciones lógicas y los nexos de comparaciones. Definición Comparador Igual Igual (para texto) Distinto Mayor Menor Mayor o igual Menor o igual Negación = Like <> > < >= <= Not Los comparadores lógicos son los que se muestran en la tabla siguiente y sirven de base para las sentencias codicionales y los bucles. Se debe tomar en cuenta que las comparaciones devuelven dos posibles resultados: True (Verdadero) o False (Falso). Entonces, como ejemplo, una serie de comparaciones y el valor devuelto: 45 = 60 False 45 <>60 False 45 <= 60 True También hay nexos que unen comparaciones para devolver un resultado de True o False en base a los resultados True o False de cada comparación; son los siguientes: § Or: este comparador devuelve True si alguna de las comparaciones devuelve True. § And: devuelve True si todas las comparaciones devuelven True. § Xor: devuelve True si una comparación devuelve True y la otra False. § Eqv: devuelve True si ambas comparaciones devuelven True o False. § Imp: devuelve True en todos los casos, excepto en el caso de que la primera comparación sea True y la segunda False. Estas sentencias se pueden anidar, o sea, que una de las evaluaciones o bucles se puede incluir dentro de otra. Ahora se verán cada una de las sentencias de control y bucles antes mencionados.



If … Then … Else … End if


Esta es la más común de las sentencias condicionales y permite ejecutar determinadas sentencias en virtud de una comparación de las ya mencionadas. La forma general es la siguiente: If condición Then sentencias si condición=True [Else] sentencias si condición=False End If Else es opcional, o sea, puede colocarse el End If luego de las sentencias si la condición=True. Una variante de esta sentencia es la siguiente: If condición1 Then sentencias si condición1=True ElseIf condición2 Then sentencias si condición=False y condición2=True [Else] sentencias si condición=False y condición2=False End If Un ejemplo práctico de estos dos modos de la sentencia If es el siguiente: Const Numero As Integer=4666 Dim Variable As Byte If Numero>=5000 Then Variable=100 Else:Variable=200 End If Al salir de esta sentencia, Variable valdrá 200; se ejecutó la sentencia después de Else, ya que Numero (4666) es menor que 5000.




Sentencia Select Case… Case … End Select


Esta sentencia condicional se utiliza para cuando haya que hacer múltiples evaluaciones de una misma expresión; se da a la sentencia una expresión de base y cada comparación es un caso. La forma general de esta sentencia es la siguiente: Select Case expresión Case comparación1 sentencias si comparación1 es verdadera Case comparación2 sentencias si comparación1 es verdadera … End Select Se evalúa la expresión en cada sentencia Case y cuando se encuentra una comparación que sea verdadera, se ejecuta ese grupo de sentencias y se sale de este bloque. Por ejemplo: Const Palabra As String=”Visual Basic” Dim Resultado As Byte Select Case Len(Palabra) ‘Len=12 Case 2,4 Resultado=1 Case 3 To 6 Resultado=2 Case Is>11 Resultado=3 Case Else Resultado=4 End Select Se evalúa la expresión Len(Palabra), que devuelve un valor numérico con la cantidad de letras que contiene la constante Palabra (12 caracteres). Si la expresión Len(Palabra) vale 2 o 4, Resultado valdrá 1; si es un valor entre 3 o 6 (inclusive) valdrá 2; si es mayor que 11, Resultado valdrá 3, si ninguno de los anteriores llegara a ser cierto, Resultado valdrá 4. Cuando se salga de este bloque, Resultado valdrá 3, ya que el Case Is>11 es verdadero.



Bucle For…Next


Este es un bucle muy utilizado en la programación. Permite repetir las sentencias entre For y Next, mientras se incrementa o reduce el valor de una variable, el cual tendrá dos límites. La forma general de este bucle es la siguiente: For Var=ValorInicial To ValorFinal Sentencias [Exit For] Next Var Var es una variable numérica que controla el bucle, ValorInicial es el valor inicial de la variable cuando entre en el bucle y ValorFinal será el valor que marcará el fin del bucle. Exit For es opcional y permite salir del bucle antes de que Var sea mayor o igual que ValorFinal. Por ejemplo: Dim unArray(4)As Integer, x As Integer For x=0 To 4 unArray(x)=5+x Next x Este bucle recorre los elementos de unArray y le asigna valores, 5 unidades más el valor del índice del elemento. Al salir del bucle el array unArray tendrá los siguientes valores: unArray(0)=5; unArray(1)=6; unArray(2)=7; unArray(3)=8; unArray(4)=9 Otra modalidad del bucle For es uno que permite recorrer un array o una colección en que no se sabe la cantidad de elementos que contiene; su forma general es la que sigue: For Each Variable In Array/Colección Sentencias [Exit For] Next Donde Variable es una variable de tipo Variant en el caso de que Array/Colección sea un array o un objeto en el caso de que Array/Colección sea una colección de objetos. También puede salirse en el momento que se desee con Exit For.



Sentencia Goto Sub

Esta sentencia sirve para pasar a una parte específica de un procedimiento o función. Algunos programadores ven a esta sentencia como una mala práctica de programación; personalmente creo que es una sentencia más, que tiene una utilidad y que mientras dé resultado su utilización, la utilizo. Queda a criterio de cada quién. En una parte del código se coloca una etiqueta y esta sentencia realiza un salto hacia esa etiqueta; por ejemplo: Private Function Múltiplode2_3_5_7(Numero As _ Long)As Boolean If Numero Mod 2>0 Then GoTo Noesmult End If If Numero Mod 3>0 Then GoTo Noesmult End If If Numero Mod 5>0 Then GoTo Noesmult End If If Numero Mod 7>0 Then GoTo Noesmult End If Múltiplode2_3_5_7=True:Exit Function Noesmult: Múltiplode2_3_5_7=False End Function Esta función examina si Numero es divisible entre 2, entre 3, entre 5 y por último entre 7. Si en algún momento se llega a verificar que Numero no es divisible por los ya mencionados se salta hasta la etiqueta Noesmult, donde se le da a la función el valor False, de lo contrario, luego de la última comparación se le da a la función el valor True y se sale de la función con Exit Function.


While… Wend

Este bucle se ejecuta entre las sentencias While y Wend, mientras la condición especificada en la cláusula While sea verdadera, pero no tiene una sentencia para salir antes de que se cumpla la condición especificada. La forma general de este bucle es la siguiente: While condición sentencias Wend Este bucle también permitiría controlar los valores de un array, incrementar una variable, etc. Por ejemplo: Dim x As Integer, Fact As Long x=1:Fact=x While x<=11 Fact=Fact*x x=1+x Wend
Cuando se salga del bucle While…Wend, cuando x=12 el valor de la variable Fact será 39916800, el factorial de 11.



Do… Loop


Este es un bucle similar al bucle While, pero permite controlar mejor la ejecución del bucle y tiene sentencia Exit Do, para la salida antes del final. En este bucle puede especificarse si se ejecutarán las sentencias mientras o hasta que se cumpla la condición especificada, con las palabras While y Until, tanto al entrar al bucle como al salir. Las formas generales son las siguientes: Forma 1, comprobación al entrar al bucle: Do While/Until condición sentencias [Exit Do] Loop Forma 2, comprobación al salir del bucle: Do Sentencias [Exit Do] Loop While/Until condición Por ejemplo, las siguientes sentencias Do son iguales pero con comprobación al inicio en la primera y al final en la segunda. Antes se tomarán como declaradas las siguientes variables: Private Cadena As String, x As Byte Primer sentencia: x=65 Do Until x=75 Cadena=Cadena + Chr(x):x=1+x Loop Al final de esta sentencia la variable x valdrá 75 y la variable Cadena tendrá el texto “ABCDEFGHIJ”. Segunda sentencia: x=65 Do Cadena=Cadena + Chr(x):x=1+x Loop Until x=75 Al final de esta sentencia la variable x valdrá 75 y la variable Cadena tendrá el texto “ABCDEFGHIJ”.


El bloque With

La instrucción With permite realizar una serie de instrucciones sobre un objeto especificado sin volver a calificar el nombre del objeto o de una estructura. Por ejemplo, para cambiar un número de propiedades diferentes en un único objeto, es más conveniente colocar las instrucciones de asignación de las propiedades en la estructura de control With, haciendo referencia al objeto una vez, en lugar de hacerlo con cada asignación de propiedad. Por ejemplo la siguiente etiqueta (Label1) : With Label1 .Alignment=1:.Caption=”Mi etiqueta” .BackColor=vbBlack:.ForeColor=vbWhite Text1.Text=.Name End With



Casos imposibles

Hay ciertas observaciones que deben hacerse al construir bucles, y es la contemplación de los casos imposibles, que producen entradas en los bucles y que, al no llegar nunca a cumplirse la condición especificada para la salida, se bloquea el sistema (sobre todo con los bucles While y Do), una sentencia de este tipo sería la siguiente: Dim Var As Byte, Var2 As Boolean Var=68 While Var<70
var2="Not"Bucle For…Next. Este es un bucle muy utilizado en la programación. Permite repetir las sentencias entre For y Next, mientras se incrementa o reduce el valor de una variable, el cual tendrá dos límites. La forma general de este bucle es la siguiente: For Var=ValorInicial To ValorFinal Sentencias [Exit For] Next Var Var es una variable numérica que controla el bucle, ValorInicial es el valor inicial de la variable cuando entre en el bucle y ValorFinal será el valor que marcará el fin del bucle. Exit For es opcional y permite salir del bucle antes de que Var sea mayor o igual que ValorFinal. Por ejemplo: Dim unArray(4)As Integer, x As Integer For x=0 To 4 unArray(x)=5+x Next x Este bucle recorre los elementos de unArray y le asigna valores, 5 unidades más el valor del índice del elemento. Al salir del bucle el array unArray tendrá los siguientes valores: unArray(0)=5; unArray(1)=6; unArray(2)=7; unArray(3)=8; unArray(4)=9 Otra modalidad del bucle For es uno que permite recorrer un array o una colección en que no se sabe la cantidad de elementos que contiene; su forma general es la que sigue: For Each Variable In Array/Colección Sentencias [Exit For] Next Donde Variable es una variable de tipo Variant en el caso de que Array/Colección sea un array o un objeto en el caso de que Array/Colección sea una colección de objetos. También puede salirse en el momento que se desee con Exit For. Sentencia Goto Sub. Esta sentencia sirve para pasar a una parte específica de un procedimiento o función. Algunos programadores ven a esta sentencia como una mala práctica de programación; personalmente creo que es una sentencia más, que tiene una utilidad y que mientras dé resultado su utilización, la utilizo. Queda a criterio de cada quién. En una parte del código se coloca una etiqueta y esta sentencia realiza un salto hacia esa etiqueta; por ejemplo: Private Function Múltiplode2_3_5_7(Numero As _ Long)As Boolean If Numero Mod 2>0 Then GoTo Noesmult End If If Numero Mod 3>0 Then GoTo Noesmult End If If Numero Mod 5>0 Then GoTo Noesmult End If If Numero Mod 7>0 Then GoTo Noesmult End If Múltiplode2_3_5_7=True:Exit Function Noesmult: Múltiplode2_3_5_7=False End Function Esta función examina si Numero es divisible entre 2, entre 3, entre 5 y por último entre 7. Si en algún momento se llega a verificar que Numero no es divisible por los ya mencionados se salta hasta la etiqueta Noesmult, donde se le da a la función el valor False, de lo contrario, luego de la última comparación se le da a la función el valor True y se sale de la función con Exit Function. While… Wend. Este bucle se ejecuta entre las sentencias While y Wend, mientras la condición especificada en la cláusula While sea verdadera, pero no tiene una sentencia para salir antes de que se cumpla la condición especificada. La forma general de este bucle es la siguiente: While condición sentencias Wend Este bucle también permitiría controlar los valores de un array, incrementar una variable, etc. Por ejemplo: Dim x As Integer, Fact As Long x=1:Fact=x While x<=11 Fact=Fact*x x=1+x Wend Cuando se salga del bucle While…Wend, cuando x=12 el valor de la variable Fact será 39916800, el factorial de 11. Do… Loop Este es un bucle similar al bucle While, pero permite controlar mejor la ejecución del bucle y tiene sentencia Exit Do, para la salida antes del final. En este bucle puede especificarse si se ejecutarán las sentencias mientras o hasta que se cumpla la condición especificada, con las palabras While y Until, tanto al entrar al bucle como al salir. Las formas generales son las siguientes: Forma 1, comprobación al entrar al bucle: Do While/Until condición sentencias [Exit Do] Loop Forma 2, comprobación al salir del bucle: Do Sentencias [Exit Do] Loop While/Until condición Por ejemplo, las siguientes sentencias Do son iguales pero con comprobación al inicio en la primera y al final en la segunda. Antes se tomarán como declaradas las siguientes variables: Private Cadena As String, x As Byte Primer sentencia: x=65 Do Until x=75 Cadena=Cadena + Chr(x):x=1+x Loop Al final de esta sentencia la variable x valdrá 75 y la variable Cadena tendrá el texto “ABCDEFGHIJ”. Segunda sentencia: x=65 Do Cadena=Cadena + Chr(x):x=1+x Loop Until x=75 Al final de esta sentencia la variable x valdrá 75 y la variable Cadena tendrá el texto “ABCDEFGHIJ”. El bloque With. La instrucción With permite realizar una serie de instrucciones sobre un objeto especificado sin volver a calificar el nombre del objeto o de una estructura. Por ejemplo, para cambiar un número de propiedades diferentes en un único objeto, es más conveniente colocar las instrucciones de asignación de las propiedades en la estructura de control With, haciendo referencia al objeto una vez, en lugar de hacerlo con cada asignación de propiedad. Por ejemplo la siguiente etiqueta (Label1) : With Label1 .Alignment=1:.Caption=”Mi etiqueta” .BackColor=vbBlack:.ForeColor=vbWhite Text1.Text=.Name End With Casos imposibles. Hay ciertas observaciones que deben hacerse al construir bucles, y es la contemplación de los casos imposibles, que producen entradas en los bucles y que, al no llegar nunca a cumplirse la condición especificada para la salida, se bloquea el sistema (sobre todo con los bucles While y Do), una sentencia de este tipo sería la siguiente: Dim Var As Byte, Var2 As Boolean Var=68 While Var<70 var2="Not">




VARABLES

Las variables son espacios en la memoria donde se guarda un tipo de dato. A estos espacios de memoria se accede mediante un identificador que es el nombre de la variable. Las variables pueden tener cualquier nombre, siempre y cuando no sea una palabra clave (Keyword), que no contenga caracteres comodines (“, ¿, \, /, *, etc.) y que no empiecen con un número. Visual Basic no distingue entre mayúsculas y minúsculas por lo que la variable Población será la misma que población y la misma que PoBlacióN. Las variables se declaran entonces con un nombre que identifica un lugar en la memoria y que almacena un tipo particular de dato (los tipos de datos vistos anteriormente). Las variables deben declararse con un alcance y de un tipo determinado; la forma general de declararlas es la siguiente: Public/Private/Dim/Static nVariable As Tdato Donde Public, Private, Dim o Static representa el ámbito de la variable; nVariable es el nombre de la variable (identificador) y Tdato es el tipo de dato que almacenará. Ahora se definirá qué es el ámbito de una variable (válido también para el ámbito de los procedimientos y funciones). El ámbito de una variable es el alcance que esta tiene, o sea, los lugares donde esta variable se puede utilizar. Aquí es necesario que se defina lo que es un módulo estándar (*.bas). Este tipo de fichero sirve para almacenar código, el cual será accesible desde todo el proyecto, no tiene interfaz gráfica ya que solo almacena código. Para agregar un módulo estándar debe ir al menú Proyecto, Agregar módulo, y se agrega el módulo estándar. La siguiente tabla explica el alcance de una variable en función del lugar y su forma de declaración:


Por ejemplo, se declarará una variable privada de tipo Long llamada Población: Private Población As Long o bien, Dim Población As Long También se puede utilizar un carácter especial (que aparece en los tipos de datos con la palabra signo) para declarar la variable; de la siguiente forma: Dim Población& Siempre es conveniente declarar una variable para utilizarla y es una buena práctica escribir en la parte de declaraciones del formulario la sentencia Option Explicit la que evita que se utilicen variables no declaradas. Esto es útil para evitar declaraciones implícitas de variables que produzcan errores; por ejemplo, si hay declarada una variable llamada Banco y por error se escribe Banca, Visual Basic tomará a Banca como una variable implícita de tipo Variant, a menos que se haya utilizado la palabra clave Option Explicit que en caso de encontrar una variable no declarada no permitirá su utilización. Esta variable almacenará valores de tipo Long. Para asignarle un valor, por ejemplo 159840 se procede de la siguiente forma: Población=159840 Si desea colocarse en una etiqueta llamada Label1 el valor de la variable Población se utiliza una sentencia como la siguiente: Label1.Caption=Población También puede asignar a una variable el valor resultante de una llamada a una función. Se utilizará una función de Visual Basic llamada Len, que devuelve el tamaño en bytes de una variable o bien, los caracteres de una cadena de texto. Dim Letras As Integer Letras=Len(“Microsoft Visual Basic 6.0”) El valor de la variable de tipo Integer Letras será 26. Las variables se pueden pasar como argumentos en llamadas a funciones o procedimientos, operar como si de valores se tratara, etc. Cuando se entra a un procedimiento o función y hay en él una variable local, esta se inicia a cero en caso de ser numérica, a cadena vacía en caso de ser caracteres y a Empty (vacío) en caso de ser Variant. Cuando se sale de ese procedimiento o función la variable se pierde y al volver a entrar su valor vuelve a inicializarse como se explicó. Para que esto no ocurra, puede declararse una variable local como Static, de la siguiente forma: Static nVariable As Tdato Cuando se salga del procedimiento o función y se vuelva a ingresar, el valor que la variable tenía no se perdió sino que se mantiene.

viernes, 16 de noviembre de 2007

FUNCIONAMIENTO DE VISUAL BASIC 6.0. TENIENDO EN CUENTA EL CONTENIDO ANTERIOR






CALCULADORA PROGRAMADA EN VISUAL BASIC


Es un programa el cual se puede crear cualquier persona. siempre y cuando tenga muy en cuanta el suncionamiento o manejo adecuado del visual basic. sirve para realizar operaciones matematicas; generalmente consta de una caja de texto, como pueden ver consta de diversos botones ..... unos de salir,limpiar ; otros con los numeros del 0 al 9 y los operadores matematicos.tambien a cada uno de los botones , y a la caja de texto debiamos cambiarle las propiedades.


Ahora veremos como se programa o como se le da funcionamiento a la calculadora, a través del codigo general de este programa. El cual les presentaré a continuación:

Option Explic
Dim num1 As Double
Dim num2 As Douitble
Dim operador As String
Private Sub Command1_Click(Index As Integer)

Text = Text1.Text & Index.
BOTON +
private Sub Command2_Click()
num1 = Text1.Textoperador = "+"Text1.Text = ""
End SubBOTON -
Private Sub Command3_Click()
num1 = Text1.Textoperador = "-"
Text1.Text = ""
End sub
BOTON *
Private Sub Command4_Click()
num1 = Text1.Textoperador = "*"Text1.Text = ""
End Sub
BOTON /
Private Sub Command5_Click()
num1 = Text1.Textoperador = "/"Text1.Text = ""
End sub
BOTON modulo
Private Sub Command6_Click()
num1 = Text1.Textoperador = "mod"Text1.Text = ""
End Sub
BOTON =
Private Sub Command7_Click()
Dim res As Double
num2 = Val(Text1.Text)
If operador = "+" Then
Text1.Text = Val(num1) + Val(num2)
Exit Sub
End If
If operador = "-" Then
Text1.Text = Val(num1) - Val(num2)
Exit SubEnd If
If operador = "*" Then
Text1.Text = Val(num1) * Val(num2)
Exit Sub
End If
If num2 <> 0 And operador = "/" Then
Text1.Text = Val(num1) / Val(num2)
Else
res = MsgBox("no se puede dividir por 0 ")
End If
If operador = "mod" Then
Text1.Text = Val(num1) Mod (num2)
End If
End Sub
BOTON BORRAR
Private Sub Command8_Click()
Text1.Text = ""
End Sub
BOTON SALIR
Private Sub Command9_Click()
End
End Sub






DOS NUMEROS Y DETERMINAR CUAL ES EL MAYOR





Es un programa en el cual se ingresan dos numeros en cada una de las cajas de texto, lo cual se ve como resultado, que aperecerá en la caja de texto aparte de las anteriores el número mayor.



CODIGO GENERAL:



Dim numero1 As Integer
Dim numero2 As Integer
'boton resultado'
Private Sub Command1_Click()
numero1 = Val(Text1.Text)
numero2 = Val(Text2.Text)
numero3 = Val(Text3.Text)
If numero1 > numero2 Then
Text3.Text = numero1 'numero1 es mayor'
ElseText3.Text = numero2 '
numero2 es mayor'
End If
End Sub
'boton salir'Private Sub Command2_Click()
End
End Sub
'boton borrar'
Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub




DOS IMAGENES EN MOVIMIENTO


En el siguiente programa veremos dos imagenes en movimiento, con diferente movimiento.

estas imagenes despues de ser arregladas en pain se insertaron a traves de dos picture box, dos barras de desplzaminto, ver grafica.




CODIGO GENERAL



Dim cy, cx As Integer
Boton finalizar
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
cx = 100
cy = 100
End Sub
Barra vertical de velocidad
Private Sub tiempo1_Change()
tmpcarros.Interval = tiempo1.Value
End Sub
Barra horizontal de velocidad
Private Sub tiempo2_Change()
tmpcirculos.Interval = tiempo2.Value
End Sub
Timer1
Private Sub tmpcarros_Timer()
figcarros.Move figcarros.Left + 100
If figcarros.Left > ScaleWidth Then
figcarros.Move 0
End If
End Sub
Timer2
Private Sub tmpcirculos_Timer()
figcirculos.Move figcirculos.Left + cx, figcirculos.Top + cy
If figcirculos.Left < cx =" 100"> ScaleWidth + ScaleLeft Then
cx = -100
End If
If figcirculos.Top < cy =" 100"> ScaleHeight + ScaleTop Then
cy = -100
End If
End Sub





EL JUEGO






Es te juego es de mucha atención y muy divertido, en cual se pueden distrare tantolos niños como los adultos. Ahora veamos como el diseño del juego en la imagel anterior.



CODIGO GENERAL:



Botón sapote
Private Sub Command1_Click()
MsgBox ("sigue jugando")
Form2.Show
form1.Hide
End Sub
Botón limón
Private Sub Command2_Click()
MsgBox ("sige intentando ")
End Sub
Botón fresa
Private Sub Command3_Click()
MsgBox ("no no es ")
End Sub
Botón manzana
Private Sub Command4_Click()
MsgBox ("no esa no es ")
End Sub

jueves, 15 de noviembre de 2007

COMPONENTES DE VISUAL BASIC

/FORMULARIO+COMPLETO.bmp" border="0" />En el caso de las aplicaciones, debemos tener en cuenta que se desarrollan sobre ventanas que tienen controles como cajas de texto, cuadros de lista, botones de opción, etc. con los que el usuario interactúa. Las ventanas con su aspecto se crean en una interfaz gráfica llamada Formulario (Form) y se ve en la imagen de un formulario. El formulario será la ventana de la aplicación cuando ésta se compile. El cuadro de la parte izquierda de la ventana es el Cuadro de Herramientas, con los controles disponibles a colocar sobre el formulario. El cuadro de la derecha es la ventana Propiedades, las que muestra las propiedades del formulario o control seleccionado en el formulario, para cambiarlas. Es en esta vista donde se diseña en forma visual toda la parte gráfica de la ventana; este modo de trabajo se denomina modo Diseño. Luego está el otro modo de trabajo, denominado modo Ejecución es la ventana donde se escribe el código. En esta pantalla no hay objetos visuales sino que se trabaja con solo texto. El código es exclusivamente texto, en el cual se observa texto con formato de color.







CODIGO DEL FORMULARIO





Obsérvese que en la parte superior, encima de la ventana con el código aparecen dos cuadros combinados: el de la izquierda contiene todos los objetos presentes en el formulario (que admiten eventos) y en la derecha los eventos del objeto seleccionado en el cuadro de la izquierda.
También al escribir el código, puede que se quieran poner varias sentencias en una misma línea. Para ello las sentencias se pueden separar con dos puntos (:). También pueden separarse escribiendo en otra línea la siguiente sentencia. Cuando una sentencia sea demasiado larga, puede escribirse una sentencia en dos o más líneas escribiendo un espacio y el carácter underscore (_), y luego seguir escribiendo en la siguiente línea. Una limitación de los comentarios es que no se pueden escribir en el caso de sentencias divididas de esta forma.


PROYECTO DEL FORMULARIO

Todas las aplicaciones, librerías, o lo que sea que se cree en Visual Basic se hace en un Proyecto. Un proyecto (depende del tipo) contendrá Formularios, Módulos estándar, Módulos de clase, Controles de usuario, etc. Puede ver los que están presentes en el proyecto desde el Explorador de Proyectos en el menú Ver:
La siguiente imagen muestra la ventana con los componentes del proyecto; desde el menú contextual de cada elemento pueden quitarse, agregarse otros, guardarlos, etc. En el caso de los formularios y controles de usuario, puede alternarse entre la vista código y la vista de diseño.







BARRA DE CONTROLES


CONTROLES:









ETIQUETAS DE LABEL (Label)









Estos controles sirven para presentar texto (o números). La propiedad más importante de este objeto es la propiedad Caption, la cual es una cadena de caracteres con el texto a presentar en el control.
Algunas propiedades importantes de este control:
Alignment: alinea el texto dentro del control (izquierda, derecha o centrado).
Autosize: ajusta el tamaño de la etiqueta al texto que contiene (True).
BackColor: establece el color de fondo del control.
BackStyle: establece si la etiqueta tendrá fondo o será transparente.
BorderStyle: establece si la etiqueta será plana o tendrá borde.
Font: permite establecer las características de la fuente del control (excepto el color).
ForeColor: establece el color de la fuente.
Height: establece el ancho del control.
Left: establece la distancia del control del borde izquierdo de su contenedor.
Tag: guarda datos adicionales.
ToolTipText: establece un texto que se muestra al situar el mouse sobre el control.
Top: establece la distancia entre el control y el borde superior de su contenedor.
Visible: hace visible o invisible el control.
Width: establece el largo del control.
WordWrap: establece si puede haber texto en varias líneas en la etiqueta.
Los eventos de este control son:
Change: ocurre al cambiar el texto de la etiqueta (propiedad Caption)
Click: ocurre al hacer clic con el mouse sobre el control.
DblClick: ocurre al hacer doble clic sobre el control.
DragDrop:
MouseDown: ocurre al soltar un botón del mouse sobre el control.
MouseMove: ocurre cuando el usuario mueve el mouse sobre el control.
MouseUp: ocurre al presionar un botón del mouse sobre el control.







CAJAS DE TEXTO (TextBox)

Las cajas de texto son controles típicos de Windows y a través de ellas se ingresan la mayor parte de los datos a las aplicaciones. Las cajas de texto permiten editar texto (o números) directamente. La propiedad más importante de las cajas de texto es la propiedad Text, que representa el texto contenido en el control.
Algunas propiedades importantes de este control son:
Alignment, BackColor, BorderStyle, Font, ForeColor, Height, Left, Tag, ToolTipText, Top, Visible y Width.
Appearance: establece si el control se ve con efecto 3D o plano.
Enabled: determina si un usuario puede generar eventos sobre el control.
Locked: determina si se puede modificar directamente el texto de la caja de texto.
MaxLenght: determina el máximo de caracteres que puede contener la caja de texto.
MultiLine: determina si puede haber texto en varias líneas en la caja de texto.
PasswordChar: sustituye el texto escrito por un carácter, el cual no permite hacer visible el texto real (como las cajas de claves de seguridad).
ScrollBars: permite colocar barras de desplazamiento en los bordes para desplazarse en caso de que el texto sea demasiado extenso.
TabIndex: devuelve el orden de la tabulación de un control (se puede desplazar a través de los controles presionando la tecla TAB).
TabStop: establece si este control recibe el enfoque (el foco) a través de la tecla TAB.
Los eventos de este control son:
Click, Change, DblClick, DragDrop, DragOver, MouseDown, MouseMove, MouseUp
GotFocus: ocurre cuando el control recibe el foco (pasa a ser el control activo).
KeyDown: ocurre al presionar una tecla del teclado mientras el control tiene el foco.
KeyPress: ocurre cuando el presiona y libera una tecla.
KeyUp: ocurre al liberar una tecla del teclado mientras el control tiene el foco. LostFocus: ocurre cuando el control pierde el foco (deja de ser el control activo). Validate: ocurre cuando un control perde el foco a favor de un control que produce una validación.Los métodos de este control son los siguientes: Drag, Move, Refresh y Zorder. SetFocus: hace que el control reciba el foco (pase a ser el control activo LostFocus: ocurre cuando el control pierde el foco (deja de ser el control activo). Validate: ocurre cuando un control perde el foco a favor de un control que produce una validación.Los métodos de este control son los siguientes: Drag, Move, Refresh y Zorder. SetFocus: hace que el control reciba el foco (pase a ser el control activo).

BOTONES COMANDO (CommandButton)





La función de los botones de comando es iniciar acciones y Windows está lleno de este tipo de control, por ejemplo el botón Inicio, los botones de Aceptar y Cancelar de los cuadros de diálogo, etc.
Lo más usual es usar el evento Click de este control para desencadenar distintas operaciones, en virtud de lo que se desea realizar. No obstante se dan algunas propiedades:
Caption: es el texto contenido en el botón. Si se añade el carácter & delante de algún carácter, ese carácter aparecerá subrayado con lo cual también se podrá desencadenar el evento Click con la tecla Alt presionada y el carácter subrayado. En el ejemplo del botón de la imagen, sería Alt + e.
Cancel: determina si el botón de comando funciona como el botón Cancelar de un formulario.
Picture: establece el gráfico que se mostrará en el botón cuando su propiedad Style sea igual a 1.
Style: establece si el botón aparecerá con el formato estándar de Windows (0) o con formato gráfico (1).
Las propiedades DisabledPicture, DownPicture, MaskColor y UseMaskColor tienen el mismo significado que en los botones de opción.
Los métodos son los mismos que en los botones de opción y también sus eventos (Click, DblClick, KeyPress, etc.).






BOTONES DE OPCIÓN (OptionButton)


Estos botones permiten decidir entre una serie de opciones. Al estar contenido dentro de un marco (recuadro con el título Edad), solamente uno podrá estar activo (en la imagen el primer botón). Por ejemplo, una persona podrá estar en uno de los rangos de edades, por tanto, los demás quedarán excluídos al seleccionar uno.
La propiedad más importante es la propiedad Value, que indica si está activo el botón (True) o no (False).
Otras propiedades importantes son:
Appearance, BackColor, Enabled, Font, ForeColor, Left, TabIndex, TabStop, Tag, ToolTipText, Tag, Top, Visible y Width.
Alignment: es la alineación del texto a la izquierda o derecha del control.
Caption: es el texto del botón.
DisabledPicture: devuelve el gráfico que se mostrará cuando el botón esté desactivado (cuando la propiedad Style es 1).
DownPicture: devuelve el gráfico cuando el botón esté presionado (cuando la propiedad Style es 1). MaskColor: establece un color de la imagen del botón que se mostrará transparente (cuando la propiedad Style es 1).
Picture: establece la imagen que contendrá el control cuando su propiedad style es 1.
Style: establece el estilo del control, ya sea el estándar de Windows (Style 0) o con formato gráfico (Style 1).
UseMaskColor: devuelve un valor que determina si el color especificado por la propiedad MaskColor se muestra como transparente (cuando Style es 1).
Value: es un valor que indica si el control está activo o no.
Es también de destacar que la propiedad BackColor y ForeColor funcionan cuando la propiedad Style vale 1; condición válida para las casillas de verificación y botones de comando.
Los métodos de este control son los siguientes:
Drag, Move, Refresh, SetFocus y ZOder.
Los eventos que soporta el control son los siguientes:
Click, DblClick, DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, MouseUp y Validate.



MARCOS (Frame)


Los marcos sirven como contenedores de otros controles, con un título en su parte superior. Son de utilidad captial para los botones de opción, ya que éstos deberán estar contenidos dentro de un marco para funcionar correctamente. La propiedad más sobresaliente de este control es la propiedad Caption que es el título que aparecerá la parte superior del control.
Otras propiedades importantes son:
BorderStyle: permite visualizar el borde del control con su título, o no.
Appearance, BackColor, Enabled, Font, ForeColor, Height, Left, TabIndex, Tag, ToolTipText, Top, Visible y Width.
Los eventos soportados por los marcos son:
Click, DblClick, DragDrop, DragOver, MouseDown, MouseUp y MouseMove.
Los métodos de los marcos son:
Drag, Move, Refresh y Zorder.

CUADROS COMBINADOS (ComboBox)


Los cuadros combinados combinan las cualidades de las cajas de texto con los cuadros de lista y son muy usuales en el entorno Windows (por ejemplo, en la barra de herramientas Formato de Microsoft Word, las fuentes están contenidos en un control de este tipo). Por tanto, dispondrá de los métodos AddItem, RemoveItem, Clear, ListCount, List y ListIndex de los cuadros de lista. También posee la propiedad Text que indica el elemento actual seleccionado (el elemento que tiene el índice indicado por ListIndex).
Una propiedad importante de este control es la propiedad Style, la cual tiene tres valores que especifican el tipo de visualización que tendrá el control Cuadro Combinado. Además tiene el evento DropDown, que ocurre cuando la parte de lista del control se está por desplegar.



CUADROS DE LISTA (ListBox).


Este control permite ingresar texto en líneas, como una auténtica lista. Este control también es muy usual en el entorno Windows. Pueden seleccionarse los elementos de este control para realizar distintas tareas, según las necesidades del programa que se esté creando. Este control tiene varias propiedades y métodos que manipulan los datos que contienen.
Cada línea del cuadro de lista es un elemento de la lista, y a cada elemento de la lista se lo identifica con un número de índice; los índices comienzan a numerarse por cero (0). Esta explicación permitirá entender cómo acceder y manipular los elementos de la lista.
Las propiedades de este control son:
Appearance, BackColor, Enabled, Font, ForeColor, Height, Left, TabIndex, TabStop, Tag, ToolTipText, Top, Visible y Width.
Columns: establece si los elementos se sitúan en una sola columna (cuando vale 0) o en más de una columna de estilo periodístico (cuando vale más de 0).
List: permite ingresar elementos en tiempo de diseño.
MultiSelect: permite seleccionar más de un elemento.
Sorted: indica si los elementos se van ingresando ordenados por orden alfabético o no.
Style: muestra la lista con o sin casillas de selección (Estándar o Checkbox).
Los eventos de este control son:
Change, Click, DblClick, DragDrop, DragOver, GoFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, MouseUp y Validate.
ItemCheck(Item As Integer): ocurre al activar o desactivar un elemento de la lista cuando la propiedad Style es Checkbox. El argumento Item representa el índice del elemento.
Scroll: ocurre al mover la barra de desplazamiento del control.
Los métodos de este control son:
Drag, Move, Refresh, SetFocus y ZOrder.
Existen otras propiedades y otros métodos disponibles solamente desde el código y permiten ingresar y remover elementos, así también como recuperarlos, seleccionarlos, contarlos y eliminarlos todos.
Método Additem: este método ingresa elementos en el cuadro de lista. Su forma general es la siguiente:

NListBox.AddItem(Item As String,[Index])

Donde NListBox es el nombre del cuadro de lista; Item es una cadena de caracteres que será el elemento, Index es un argumento opcional que especifica el número de índice que tendrá.
Método RemoveItem: este método elimina elementos del control. Su forma general es la siguiente:

NListBox.RemoveItem(Index As Integer)

Donde NListBox es el nombre del cuadro de lista; Index es el índice del elemento a eliminar.
Método Clear: este método elimina todos los elementos del control. Su forma general es:

NListBox.Clear

Donde NListBox es el nombre del cuadro de lista.

Propiedad ListCount: devuelve la cantidad de elementos contenidos en el control. Es de solo lectura.
Propiedad List(Index As Integer): devuelve un elemento de la lista, especificado por el argumento Index. Tener en cuenta que el primer elemento de la lista tendrá índice 0 y el último un valor igual a la cantidad de elementos menos 1 (ListCount-1).
Propiedad ListIndex: devuelve o establece el elemento que se encuentra seleccionado de la lista, mediante su número de índice. Tener en cuenta que el primer elemento de la lista tendrá índice 0 y el último un valor igual a la cantidad de elementos menos 1 (ListCount-1). Cuando no hay ningún elemento seleccionado o para eliminar cualquier selección, el valor de ListIndex será -1.
Propiedad SelCount: esta propiedad está disponible cuando la propiedad Style tiene el valor Checkbox y devuelve la cantidad de elementos activados.





CASILLASDE VERIFICACIÓN (CheckBox)


Estas casillas cumplen una función similar a los botones, pero con la diferencia de que no se excluyen entre ellos, aunque estén dentro del mismo marco. Por lo tanto, se pueden utilizar estas casillas para datos de un mismo tipo no excluyentes (como los de la imagen de ejemplo), por lo tanto no necesitan estar dentro de un marco.
En cuanto a sus propiedades, métodos y eventos, son similares a los de los botones de opción (excepto que no posee el evento DblClick).
Su propiedad Value presenta una variante con respecto a la propiedad Value de los botones de opción: mientras que en los botones de opción la propiedad Value puede tomar dos valores (True o False), en las casillas de verificación puede tomar tres: Checked (1), Unchecked (0) o Grayed (2).



CONTROL DE TIEMPO (Timer).



El control no tiene una interfaz gráfica (no se ve nada en en formulario), pero sí sus efectos. La función de este control es repetir tareas cada cierto intervalo de tiempo. La imagen es del icono que representa al control en tiempo de diseño, ya que en tiempo de ejecución no se ve.
Las propiedades más importantes de este control son:
Enabled: activa o desactiva el control (el evento Timer).
Interval: es el tiempo en milisegundos con que se repite el evento Timer. Si vale cero no tiene lugar el evento Timer.
Este control no tiene métodos y tiene un único evento: el evento Timer, el cual ocurre con la periodicidad indicada por la propiedad Interval mientras sea mayor que 0 y la propiedad Enabled valga True.





COMBO DE UNIDADES DE DISCO (DriveListBox)





Este control es un cuadro combinado con las unidades de disco que tiene el sistema (discos duros, disqueteras, unidades CD-ROM, conexiones de red, etc) acompañado de una imagen.
Por ser un cuadro combinado tiene las propiedades List, ListCount y ListIndex de los cuadros combinados, pero no así los métodos para agregar, remover, borrar elementos.
La propiedad más importante es la propiedad Drive, que sólo está presente en el código y es una cadena de caracteres con la ruta de la unidad actual. En el ejemplo de la imagen, la propiedad Drive tendrá el valor c:
Los eventos son los mismos que para los cuadros combinados, pero con la variante de que al cambiar el elemento en el control unidad de disco se produce su evento Change.




LÍNEAS (Line)

Este control tiene una finalidad puramente decorativa. No tiene eventos, no puede recibir el foco y únicamente tiene los métodos Refresh y ZOrder. Sin embargo, tiene propiedades que controlan su apariencia y ellas son:
BorderColor: establece el color de la línea.
BorderStyle: establece el tipo de línea (contínua, punteadas, rayas, etc.) sólo cuando la propiedad BorderWidth vale 1.
BorderWidth: establece el grosor de la línea.
DrawMode: establece la apariencia del este control.
X1: establece la coordenada x de un extremo de la línea.
X2: establece la coordenada x del otro extremo de la línea.
Y1: establece la coordenada y de un extremo de la línea.
Y2: establece la coordenada y del otro extremo de la línea.
Tag y Visible.


FORMAS (Shape).



Al igual que las líneas, la utilidad de este control es de decoración; no posee eventos ni puede recibir el foco y posee solamente los métodos Move, Refresh y ZOrder.
Su propiedad más importante es la propiedad Shape, que determina el tipo de forma que tendrá el control: 0 – Rectángulo, 1 – Cuadrado, 2 – Ovalo, 3 – Círculo, 4 – Rectángulo redondeado y 5 – Cuadrado redondeado. Otras propiedades importantes son las siguientes:
BackColor, BorderColor, BorderStyle, BorderWidth, DrawMode, Height, Left, Tag, Top y Visible.
BackStyle: determina si el color de fondo (BackColor) es transparente (0) u opaco (1).
FillColor: establece el color de relleno de la forma.
FillStyle: establece el tipo de relleno que contendrá la forma: 0 – Sólido, 1 – Transparente, 2 – Líneas horizontales, 3 – Líneas verticales, 4 – Diagonales descendentes, 5 – Diagonales ascendentes, 6 – Cuadriculado y 7 – Rejillas.




PROPIEDADES


propiedades dan forma a los objetos; definen sus características. En el caso del perro sus propiedades serían el Peso, la Edad, color de ojos, color del pelo, etc. Las propiedades almacenan un valor que les da una medida, en el caso del gato serían 10 Kg., 3 años, negros, blanco, respectivamente. A las propiedades se accede con el nombre del objeto seguido de un punto (.) y el nombre de la propiedad.
En el caso de que se quisiera acceder a la propiedad Edad de Fido, la sentencia será:

Fido.Edad

Las propiedades pueden ser de lectura, escritura o ambas. Las propiedades de lectura son aquellas que solo puede conocerse su valor pero no cambiarlo. Las de escritura son aquellas que solamente puede cambiarse su valor pero no consultarlo, aunque estas propiedades no son lo más usual. Las propiedades de lectura/escritura pueden tanto consultarse como cambiar su valor.





FUNCIONES

Las funciones son similares a los métodos, con la diferencia de que las funciones tienen un valor de retorno y los métodos no. Este valor de retorno puede ser un número, una cadena de texto, un valor de tipo Verdadero/Falso, e inclusive otro objeto. Una función puede llevar o no argumentos y se accede de la misma forma que a los métodos.





EVENTOS


Los eventos son acciones que el usuario o el mismo objeto o el sistema operativo puede efectuar sobre él y que es reconocido por éste. En el caso de Fido, puede ser un evento el hablarle, el llamarlo, etc. Un evento puede o no llevar argumentos que especifiquen aun más el suceso; por ejemplo, en el caso de Fido puede ser un argumento del evento Hablarle una cadena de caracteres con lo que se le dice.
Estos se utilizan para ejecutar sentencias ante el reconocimiento de una determinada acción. Por ejemplo, si se desea que Fido ladre cuando se le llama: se utiliza el evento Llamarlo de la siguiente manera:

Private Sub Fido_Llamarlo()
Fido.Ladrar
End Sub

Un evento tiene la siguiente forma general:

Private Sub NombreObjeto_NombreEvento(Argumentos)
Sentencias
End Sub

Sentencias son las sentencias que se ejecutarán cuando ocurra el evento. Las palabras Private Sub y End Sub se explicarán en capítulos posteriores.
Los eventos son, entonces, notificaciones que el objeto envía de que un suceso de importancia ha ocurrido. Estos son muy utilizados sobre todo en los controles. Explicaciones de algunos eventos.
Algunos eventos llevan parámetros y es conveniente explicarlos. El primero es el evento KeyPress, el cual tiene la siguiente forma general:

Private Sub nControl_KeyPress(KeyAscii As Integer)

Este evento lleva un argumento numérico (KeyAscii) que indica el número en código ASCII que representa la tecla presionada. Por ejemplo, si se hubiese presionado la tecla Enter el valor del argumento KeyAscii es 13, si la tecla es Escape, el valor de KeyAscii es 27, etc. Esto permite conocer en el código la tecla presionada.
Los eventos KeyDown y KeyUp tienen lugar cuando se presiona una tecla y cuando se libera, respectivamente. La forma general es la siguiente:

Private Sub nControl_KeyDown(KeyCode As Integer, _ Shift As Integer)

Donde KeyCode es un argumento numérico que especifica la tecla presionada y Shift es otro argumento numérico que especifica si alguna de las teclas especiales (Control, Shift, Alt o Alt Gr). Exactamente igual es el evento KeyUp.
El evento MouseDown y MouseUp tienen lugar al presionar y liberar un botón del mouse. Ambos tienen los mismos argumentos, su forma general es la que sigue:

Private Sub nControl_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single)

Donde el argumento Button es numérico y refleja el botón del mouse que se ha pulsado (o liberado), Shift indica si alguna de las teclas especiales está presionada (Control, Shift, Alt o Alt Gr). X e Y son valores numéricos que indican la coordenada X e Y del cursor del ratón en el momento que se produce el evento.
El evento QueryUnload del formulario tiene la siguiente forma general:

Private Sub nFormulario_QueryUnload(Cancel As _ Integer, UnloadMode As Integer)

Donde el argumento Cancel es un número que indica si se cancela la operación de cierre y UnloadMode es un valor numérico que indica la forma con la que se ha pedido descargar el formulario (haciendo clic en el botón cerrar de la barra de título, desde el menú de control, desde el otón de la barra de tareas, etc.).
El evento Unload del formulario tiene la siguiente forma general:

Private Sub nFormulario_Unload(Cancel As Integer)
Donde Cancel es un argumento numérico que indicará si se cancelará la operación de descargar el formulario.


OPERACIONES DE ARRASTRE


Arrastrar y colocar elementos en otros lados es una tarea habitual en el entorno Widows; de este modo se copian ficheros, se cambian objetos de lugar (iconos, la barra de tareas, etc.).
Para realizar esto, Visual Basic dispone de propiedades, métodos y eventos. Los controles tienen una propiedad llamada DragMode que puede tomar dos valores: 0 – Manual o 1 – Automático. Esta propiedad establece si el arrastre se iniciará y finalizará a través del código (con el método Drag) o en forma automática. También posee la propiedad DragIcon que establece un ícono personalizado para las operaciones de arrastre de ese control.
El método Drag que tienen los controles lleva un argumento numérico llamado Action, el cual determina si se comienza (1), cancela (0) o finaliza (2) una operación de arrastre. Tiene la siguiente forma general:
nControl.Drag Action

Donde Action es el número que determina el tipo de acción que dará lugar el método Drag.
Con respecto a los eventos, hay dos eventos: DragDrop y DragOver. El primero tiene lugar cuando se finaliza una operación de arrastre y lo produce el control que se arrastra. La forma general del evento es la siguiente:

Private Sub nControl_DragDrop(Source As Control, _ X As Single, Y As Single)

Donde Source es un argumento que devuelve un objeto Control, que representa el control sobre el que es arrastrado este control. X e Y son las coordenadas del cursor del mouse donde finalizó la operación de arrastre.
El evento DragOver tiene lugar mientras se arrastra un objeto sobre otro, y no es un evento del control que se arrastra, sino un evento del control sobre el que se arrastra. Tiene la siguiente forma general:

Private Sub nControl_DragOver(Source As Control, _ X As Single, Y As Single, State As Integer)

Donde Source hace referencia al control que se arrastra sobre él; X e Y indican la coordenada del cursor del mouse y State es un argumento numérico que indica si el control arrastrado está entrando (0), saliendo (1) o permanece movéndose dentro de él (2).



BARRAS DE DESPLAZAMIENTO (ScrollBars)


Hay dos tipos de barras de desplazamiento: las barras de desplazamiento horizontales y las verticales, sin embargo, ambas tienen las mismas propiedades, métodos y eventos. Las barras tienen un valor mínimo y un valor máximo, visualmente son los extremos de la barra y un valor actual, visualizado por el marcador (un cuadrado que se mueve por el control).
Estos extremos están representados por dos propiedades: Min y Max, que especifican el valor mínimo y máximo respectivamente. El valor actual está determinado por la propiedad Value, es un valor que cambia al cambiar el cursor de la barra y está entre el mínimo y máximo (o sea Min <= Value <= Max). Además de las mencionadas anteriormente, otras propiedades a tener en cuenta son: LargeChange: es la magnitud del cambio de la propiedad Value cuando el usuario hace clic en el área de desplazamiento. SmallChange: es la magnitud del cambio de la propiedad Value cuando se hace clic en la flecha de desplazamiento. Los métodos de este control son: Drag, Move, Refresh, SetFocus y ZOrder. Las barras de desplazamiento tienen dos eventos que serán los más importantes de este control, ellos son: Change: este evento ocurre cuando se cambió el valor de la barra y no lleva argumentos. Scroll: ocurre mientras se desplaza la barra y no lleva argumentos. DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus y Validate.






CAJAS DE IMAGEN (Image).


Este control permite visualizar imágenes en su interior: mapas de bits (*.bmp o *.dib), formato JPG (*.jpg), formato de intercambio gráfico (*.gif), metaarchivo de Windows (*.wmf), metaarchivo enriquecido (*.emf) e iconos y cursores (*.ico y *.cur).
Este control, sin ninguna imagen en su interior es totalmente transparente y no puede recibir el enfoque. Las propiedades de este control son las siguientes:
Appearance, BorderStyle (similar a la propiedad BorderStyle de las etiquetas), Enabled, Height, Left, Tag, ToolTipText, Top, Visible y Width.
Picture: es la imagen que contendrá el control.
Stretch: determina si la imagen contenida en la caja de imagen se adapta al tamaño de ésta.
Los métodos de este control son:
Drag, Move, Refresh y ZOrder.
Los eventos que este control soporta son los siguientes:
Click, DblClick, DragDrop, DragOver, MouseDown, MouseMove y MouseUp.



CAJAS DE DIBUJO (PictureBox).



Este control es de suma utilidad para realizar gráficos. Dispone de una serie de métodos gráficos (en la imagen se ven algunos) que comparte con los formularios y el objeto Printer y que se verán más adelante en el capítulo correspondiente a gráficos. Algunas de sus propiedades también se verán en el respectivo capítulo.
Las propiedades de este control son las siguientes:
BackColor, BorderStyle, Enabled, Font, ForeColor, Height, Left, TabIndex, TabStop, Tag, ToolTipText, Top, Visible y Width.
AutoRedraw: redibuja los métodos gráficos automáticamente.
Align: esta propiedad alinea el control en una parte del formulario que lo contiene: 0 – Ninguna, 1 – Arriba, 2 – Abajo, 3 – Izquierda y 4 – Derecha.
AutoSize: determina si la caja de dibujo adapta su tamaño al tamaño de la imagen ingresada.
FontTransparent: establece si se muestran los resultados de los métodos gráficos.
Picture: coloca una imagen en la caja de dibujo.
Los métodos de este control son, además de los métodos gráficos, los siguientes:
Drag, Move, Refresh, ZOrder.
También soporta los siguientes eventos:
Click, Change, DblClick, DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, MouseUp, Paint, Resize y Validate.El evento Paint y Resize, que comparte con los formularios, serán vistos en los formularios.



CONTROL DE DATOS (Data)


Este control permite visualizar datos contenidos en una base de datos. Para ello, al ingresarlo, hace referencia a una librería de objetos denominada DAO (Dao2535.tlb) que contiene los objetos para trabajar con bases de datos.
Este control se puede apreciar en algunos programas como en el Administrador Visual de Datos y permite enlazar controles con una base de datos. Tiene propiedades que permiten establecer una conexión con una base de datos; algunas propiedades de este control son las siguientes:
Appearance, BackColor, Enabled, Font, ForeColor, Height, Left, Tag, ToolTipText, Top, Visible y Width.
Align: alinea el control en alguno de los bordes del formulario (ninguno, superior, inferior, izquierdo o derecho).
BOFAction: establece la acción que tendrá lugar al llegar al fin de la tabla de la base de datos.
Caption: es un texto presente en el control (en la imagen es Data1).
Connect: establece el tipo de base de datos de la que se trata.
DatabaseName: es una cadena de caracteres con la ruta de acceso a la base de datos.
EOFAction: establece la acción que tendrá lugar al llegar al inico de la tabla de la base de datos.
Exclusive: indica si otros usuarios podrán acceder a esta base de datos.
Options: establece opciones necesarias para utilizar con el objeto Recordset de el control de datos.
ReadOnly: determina si es de sólo lectura (a True).
RecordsetType: establece el tipo de recordset que tendrá el control de datos.
RecordSource: establece la tabla contenida en la base de datos.
Este control funciona como un enlace entre los registros de la tabla de la base de datos y los controles a él enlazados.
Para enlazar un control al control de datos (una caja de texto, por ejemplo), en la propiedad DataSource coloque el nombre del control de datos y en la propiedad DataField seleccione el nombre del campo que representará el control.







LOS MENUS


La barra de menú es una barra localizada en la parte superior de las ventanas, con distintos comandos para utilizar en la aplicación. Observe cualquier aplicación de Windows, como Word, Excel, el Explorador de Windows, Paint o cualquier otra aplicación y verá que muchos de los comandos utilizados por el software se encuentran en ella.
Visual Basic no es ajeno a este elemento y dispone de una herramienta para crear menús de manera muy fácil, tanto una barra de menús como menús contextuales (Popup Menú).
Los menús son también objetos que tienen unas determinadas propiedades y un evento. Aparecen en la ventana de código del formulario que los contiene con un único evento: el evento Click que tiene lugar cuando el usuario hace clic en el menú; por tanto su programación es sencilla.








EDITOR DE MENUS


Es una herramienta de Visual Basic para crear la barra de menús, donde se especifica la jerarquía de cada uno, se crean arrays de menús y especifican sus propiedades.
Esta herramienta se encuentra en la barra estándar, en el menú HERRAMIENTAS, EDITOR DE MENÚS… o con el método abreviado Ctrol+E.
En el cuadro Caption se escritura el texto que estará en el menú (propiedad Caption); en el cuadro Name se escribirá el nombre del menú con el cual se accederá a él en el código; Index es un cuadro para escribir el índice del menú en un array de menús; ShortCut establece el método abreviado de teclado; Checked establece si el menú aparecerá con un signo de  al lado del menú (propiedad Checked); la propiedad Enabled y Visible permiten habilitar/deshabilitar el menú y hacerlo visible/invisible como a los otros controles.
Hay otros cuatro botones los cuales son flechas de dirección, su utilidad es establecer el orden y la jerarquía de los menús. El botón con la flecha  establece submenús disminuyendo su jerarquía, el botón con la flecha  realiza el proceso contrario; en la pantalla la jerarquía de cada menú puede verse con signos de puntos suspensivos (…), mediante esta forma puede saberse dentro de qué menú estará cada menú o si es un menú principal, y el orden de ellos. Los botones con las flechas  y  reordenan los menús. Los botones Siguiente, Insertar y Eliminar permiten desplazarse por los menús, Insertar nuevos menús y eliminar los menús seleccionados.
En la imagen del editor de menús puede verse una estructura de menús ya creada. El menú Archivo con cuatros submenús: Nuevo, Abrir, Guardar, una línea divisoria y el submenú Salir. Luego el menú principal Ayuda con un submenú Acerca de. Los submenús Nuevo, Abrir, Guardar y Salir tienen métodos abreviados de teclado.



>