lunes, 12 de octubre de 2009

Manual de POO en VB .Net

Para un mejor entendimineto de lo que es en realidad POO (Programacion Orientado a Objetos), en Visual Basic .Net ; les dejo estse link para que descarguen un manula bien detallado y explimco con ejemplos:
Espero les ayude mucho, la proxima publicación sera un applicacioon bien detallada........

miércoles, 7 de octubre de 2009

Programación Orientado a Objetos POO V

Ahora empezaremos a definir nuestro ultimo concepto, para poder comprender la POO; y se trata de "Polimorfismo". Y que es, en realidad este termino....

POLIFORMISMO

Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa. Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase.

Clasificacion
  • Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
  • Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.
Tipos
  • Sobrecarga: Ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra.
  • Paramétrico: Es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo). Tambien selecciona automáticamente el método correcto a aplicar en función del tipo de datos pasados en el parámetro.
  • Subtipado: Permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos, enmascarándolos con una interfaz común (siendo esta la clase básica).
Aqui les dejo un poco de cnceptos basico, pero para la proxima entrega veremos una aplicacion utilizando todo lo aprendido, pero lo,haremos en el lenguaje de Viasual Basic .Net........

lunes, 7 de septiembre de 2009

Programación Orientado a Objetos IV

Siguiendo con la la teoría sobre programación orientado aobjetos, nos toca hablar sobre herencia. Pasaremos a definirlo.

HERENCIA:
  • Proceso mediante el cual una clase adquiere las propiedades de otra.
  • Se define una nueva clase o subclase a partir de otra clase o superclase existente.
  • Las subclases o clases extendidas o derivadas:
    1. Incluyen todo el comportamiento y especificación de sus antecesores.
    2. Pueden redefinir la estructura y comportamiento de la superclase, esto puede verse como una especialización : superclase ==> subclase equivale general == > particular.
    3. Sirve para reutilizar código.
  • La herencia permite mediante la clasificación jerárquica gestionar de forma sencilla la abstracción(y por lo tanto la complejidad).
  • Utilización natural en el “mundo real”

Un ejemplo de herencia es el siguiente gráfico:

lunes, 31 de agosto de 2009

Programación Orientado a Objetos(POO) III

  • Objeto: Entidad que tiene unos atributos, un estado y un comportamiento bien definido.P.e.: un coche, un reloj, un animal, ...
    1. Desde el punto de vista de la POO: modelo software de un objeto del “mundo real”.
    2. Los atributos y el estado se guardan en variables.
    3. El comportamiento se gestiona mediante métodos.
    4. Procedimientos/funciones que operan con las variables del obj.

  • Clase: Estructura software que especifica un
    determinado tipo de objeto.
    1. Define la estructura y el comportamiento.
    2. “Planos” de construcción de un tipo (clase) de objetos.
    3. Después de declarar una clase pueden crearse cualquier número de objetos de esa clase (instancias).
    4. Mecanismo de encapsulación software.

  • Los objetos son instancias de las clases.

  • Clases vs. Objetos:Distinción fácil en el “mundo real” y más difícil en el software.

Si tieene un manual sobre visual basic .net subirlo por el siguinte elemento:

miércoles, 26 de agosto de 2009

Programación Orientada a Objetos (POO) II

ENCAPSULACIÓN

Para definir y saber para que sirve la encapsulación el la POO enumeraremos varias definiciones:

  1. Proceso de ocultación de todos los detalles de una entidad que no contribuyen a sus características esenciales:
    • Abstracción: nos centramos en la visión externa.
    • Encapsulación: nos centramos en la visión interna.

  2. El acceso a los datos y las operaciones se realiza mediante una interfaz bien definida.
    • P.e.: conducción de un coche Los TADs y las clases son mecanismos de encapsulación.

  3. La encapsulación es el empaquetamiento de atributos y funcionalidades para crear un objeto que esencialmente es una “caja negra” (cuya estructura interna permanece privada).

  4. Empaquetamos los detalles de la abstracción y proporcionamos acceso sólo a los elementos que necesitan estar accesibles. Otros objetos pueden acceder a los servicios de un objeto encapsulado únicamente mediante mensajes que pasan a través de una interfaz claramente definida.

martes, 18 de agosto de 2009

Programación Orientado a Objetos(POO)

La programación orientada a objetos(POO) se define como:
  • Un “paradigma” de programación
  • Una forma de pensar acerca de los problemas
  • Una potente disciplina de diseño
  • Una moderna técnica de programación

Recordamos

    • Programa: algoritmo que resuelve un determinado problema y que está expresado en términos “comprensibles” por un computador.
    • Fases en la elaboración de un programa: Análisis + Diseño + Implementación (codificación)
    • “Paradigmas” de programación: Modelos de programación que se traducen en filosofías, enfoques y técnicas de ogramar.
Para poder entender mejor sobre la POO debemos saber bien estos conceptos:
    • Encapsulación
    • Objetos y Clases
    • Herencia
    • Polimorfismo


Cada definición nombrada sera explicado posteriromente por separado. Si necesitan alguna solucion de un algoritmo en visual Basic .Net no duden en mandar sus comentarios, para su posterior respuesta

miércoles, 5 de agosto de 2009

Eliminar elementos de un ListBox

Este sería el código a usar para eliminar el elemento que está seleccionado:Private Sub ListBox1_KeyDown(ByVal sender As Object, ByVal e_
As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyDown
If e.KeyCode = Keys.Delete Then
' Borrar las palabras seleccionadas del listbox
Dim i As Integer
With ListBox1
For i = .SelectedItems.Count - 1 To 0 Step -1
.Items.Remove(.SelectedItems.Item(i))
Next
End With
End If
End Sub

La parte del If e.KeyCode = Keys.Delete Then En este caso, queremos
saber si el valor de e.KeyCode, que es la tecla que has pulsado, es igual a
Keys.Delete, éste último valor es un valor "predefinido" que
representa a la tecla suprimir.

Por tanto, si la tecla que hemos pulsado es igual a la tecla suprimir, entonces
hacer lo que viene a continuación...


Dim i As Integer esto le indica al VB
que vamos a usar un número y que ese número lo guarde en la variable i, de esto también tendrás
ocasión de enterarte mejor, por ahora dejémoslo así.


With ListBox1 el With se utiliza para
simplificarnos las cosas y lo que viene a significar es que donde se tendría
que usar el objeto ListBox1, se ponga un punto... más o menos... ahora veremos
cómo se escribiría el código sin usar el With ListBox1.


For i = .SelectedItems.Count - 1 To 0 Step -1 con esto le estamos indicando que use la variable i para ir
guardando los valores que resulten de contar desde el número de elementos que
hay seleccionados hasta cero. El Step -1 se usa para contar hacia atrás, (de
mayor a menor), pero eso, al igual que el For, también lo veremos más adelante.

SelectedItems es una colección en la cual están los elementos que hay
seleccionados en el ListBox.

¿Recuerdas la colección Items? Pues en este caso, SelectedItems son los
elementos seleccionados y para que lo sepas, todas las colecciones suelen tener
un método Count que nos dice el número de elementos que hay en ellas.


.Items.Remove(.SelectedItems.Item(i))
Esto es parecido a lo visto antes, es decir, elimina el elemento que está
seleccionado y que ocupa la posición i dentro de la colección de
elementos seleccionados.

Esto también lo podríamos haber escrito de esta otra forma:

.Items.Remove(.SelectedItems(i)) que para el caso es lo mismo.

En su momento veremos porqué.

Por ahora quédate con la copla de que Item es la propiedad o método
predeterminado de la colección SelectedItems.


Next indica que continúe el bucle o la
cuenta que estamos llevando con la variable i.

De esta forma, al haber usado el Step -1, lo que hacemos es contar hacia atrás
y si por ejemplo i valía 3, al llegar aquí, valdrá 2, es decir restamos 1: el
valor indicado en Step


End With indica hasta dónde llega el
tema ese del With ListBox1


End If le dice que hasta aquí llega la
comprobación que hicimos de si la tecla pulsada era la de suprimir.

jueves, 30 de julio de 2009

Manual de VB .Net

Este manual lo encontre navegando por la web, y parte de los archivos PDF's mi profesor de visual basic me los compartio en clase para darle una repasada.

Espero que les ayude en este lenguaje, ya que es un lenguaje de una sintaxis facil de entender y muy práctico para el manejo de formularios. Pues akiles dejo el enlace de descarga:

DESCARGAR:
http://www.willydev.net/descargas/Cursos/vbnet/

lunes, 27 de julio de 2009

Capturar datos de un DataGridView

Este artículo tara como grabar los datos seleccionados en una celda del DataGridView, es decir recuperarlo para su posterior uso.

Primeramente, como acostumbro voy a mostrarle el codigo; para esto tengo dos formas de hacerlo:

  1. Usando el With..End With:
           Dim cod as String
    With DataGridView1
    cod = .Item(0, .CurrentCell.RowIndex).Value)
    End With
  2. Sin usar With..End With:
           Dim cod as String       
    cod = DataGridView1.Item(0, DataGridView1_
    .CurrentCell.RowIndex).Value)
´

La explicacion es muy simple para ambos casos, utilizamos la propiedad Item para poder localizar la celda de donde se va a recuprera los datos. Primeramente escribimos el indice de la columna (en este caso es cero) y luego el indice de la fila (en este caso captura la fila seleccionada).

viernes, 17 de julio de 2009

TextBox en un DataGridView

Ahora veremos como insertar TextBoxs en una columna de un DataGridView, esto nos sirve para hacer modificaciones en los datos insertados.

Primeramente crearemos un procedimiento donde se ingresaran 5 parametros :
Sub ColText(ByVal obj As DataGridViewTextBoxColumn,_
ByVal campo As String, ByVal nomtext As String,_
ByVal headertext As String, ByVal estado As Boolean)
If TypeOf obj Is DataGridViewTextBoxColumn Then
'enlazando un campo a la caja de texto
obj.DataPropertyName = campo
obj.Name = nomtext
obj.HeaderText = headertext
'aliniamiento de la celda de texto
obj.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
'especificando si la caja de texto esta en solo lectura o no
obj.ReadOnly = estado
Me.DataGridView1.Columns.Add(obj) ' agregando la columna
End If
End Sub


El parametro obj es un objeto de tipo DataGridViewTextBoxColumn, campo el nombre de campo de la tabla utilizada de la BD, nomtext es el nombre de de TextBox,headertext es la cabecera de la columna, estado es para ver si solo es de lectura.

Los metodos utilizados:
  • DataPropertyName : Sirve para mostrar los datos de un campo de una tabla de BD.
  • Name : Para guardar el nombre del TextBox
  • HeaderText : Para la cabecera de la columna
  • DefaultCellStyle.Alignment : Para la alineacion de los registros
  • ReadOnly : Para la lectura de datos(true o false)


Ahora vamos a ver el procedimiento donde agregamos las cajas de texto.
Try
'Habilitando a escritura
Me.DataGridView1.ReadOnly = False
Me.DataGridView1.DataSource = tbl
'Limpienado las columnas anteriores, para establecer las nuevas columnas
Me.DataGridView1.Columns.Clear()
'Agregando las columnas tipo texto al datagridview1
Dim objt1, objt2, objt3, objt4, objt5, objt6, objt7 As New_
DataGridViewTextBoxColumn
ColText(objt1, "Alu_cod", "txtcod", "Codigo", True)
ColText(objt2, "Alu_nom", "txtnombre", "Alumno", True)
ColText(objt3, "N1", "txtn1", "Nota 1", False)
ColText(objt4, "N2", "txtn2", "Nota 2", False)
ColText(objt5, "N3", "txtn3", "Nota 3", False)
ColText(objt6, "Promedio", "txtpp", "Promedio", True)
ColText(objt7, "estadoalumno", "txtestado", "Estado", True)
'Redimencionando las columnas
Me.DataGridView1.AutoResizeColumn(DataGridViewAutoSizeColumnMode._
AllCells)
Catch ex As Exception

End Try

sábado, 11 de julio de 2009

Formato de un ListView

En este post cargaremos un Listview en modo de ejecución, como se ve en la imagen:



El codigo para esto es el siguiente:


Private Sub Form2_Load(ByVal sender As System.Object,_
ByVal e As System.EventArgs)Handles MyBase.Load
'formato del ListView1
With ListView1
.View = View.Details
.GridLines = True
.FullRowSelect = True
.CheckBoxes = True
.Columns.Add("IdCliente", 80, _
HorizontalAlignment.Left)
.Columns.Add("NombreCompañia", 220, _
HorizontalAlignment.Left)
End With
'Aqui viene mas codigo de como insertar los datos al ListView
End Sub

Propiedades utilizadas:
  1. La propiedad .View nos muestra el listviewcomo se va mostrar el listview.

  2. La propiedad .GridLines no muestra un formato de grillas, como un el de un DataGridView.

  3. La propiedad .FullRowSelect no permite seleccionar varios items del listview.

  4. La propiedad .CheckBoxes permite insertar checkboxs a listview.

  5. La propiedad .Columns.Add(encabezado,longitud,alineación) nos permite agregar columnas al listview dandole un encabezado o titulo,la longitud y la alineación del contenido de la columna.

miércoles, 1 de julio de 2009

Guardar datos en un ListBox

Como anteriormente ya deje un post para ver como se guardan datos en un ComboBox; ahora veremos como guardar datos en un listbox.

Primeramente veremos las propiedades mas comunes que utilizaremos y son:


  • DataSource: nos permite guardas valores de un DataTable

  • DisplayMenber: nos permite guardar un capo al igual que el combobox

  • ValueMenber: nos permite guardar otro campo.


Aplicacion: Mostrar los productos por categoria en un DataGridView para eso guarderemos los productos en un listbox y al hacer click en uno de ellos mostrarlos.

Nota: Utilizaremos una conexion a SqlClient


'importamos los elementos
Imports System.data
Imports System.Data.SqlClient 'Proveedor de Sql Server

Public Class Form1
'Paso 1: Creando la cadena de conexion
Dim cad as tring = "Server=(local);IntegratedSecurity=SSPI;Database=Neptuno"
Dim cn As New SqlConnection(cad)

'evento load del form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Paso 2: Listando los datos en el ListBox
Dim strsql As String = "Select idproducto,nombreproducto From productos"
Dim da As New SqlDataAdapter(strsql, cn)
'creando una tabla en memoria
Dim tbl As New DataTable
'copiando los datos del DataAdapter al DataTable
da.Fill(tbl)
'Mostrando los datos en el ListBox
ListBox1.DataSource = tbl
ListBox1.DisplayMember = "nombreproducto"
ListBox1.ValueMember = "idproducto"
LBLCANTIDAD.Text = ListBox1.Items.Count
End Sub
End Class

Funciones y procedimeintos en vb.net

Los procedimientos som proceso que no devuelven un valor especifico, esta es la sintaxis:

Sub N0mbredelProcedimiento()
cuerpo
End sub

Aqui les va un ejemplo: Crear un procedimiento que permita limpiar los TextBox de un formulario.



Sub limpiar()
Dim obj As Object
For Each obj In Me.Controls
If TypeOf obj Is TextBox Then
obj.text = ""
End If
Next
End Sub


El For Each nos ayuda a buscar los objetos que son TextBox y los limpia.

NOTA: Los TextBox que esten dentro de de un groupbox no se limpiaran por que los toma fuera del formulario.

En cambio las funciones davuelven un valor específico y puede recibir parametros.

EJEMPLO: Crear una funcion que devuelven la suma de dos numeros que se reciben como parametros.


Function suma(ByVal x As Integer,ByVal y As Integer) As Integer
Dim suma As Integer
suma = x + y
Return suma
End Function

Los parametros son: x, y (valores enteros) y el valor a retornar es: suma.

lunes, 29 de junio de 2009

Metodo de Burbuja

Este metodo es el mas utilizado por todos los programadores para ordenar datos.

Empezaremos declarando las variables a utilizar:

Dim vec(5), i, j, m As Integer

donde:
  • vec(5) es un vector
  • i, j son indices
  • m la memoria temporal

Luego a ordenar:

vec(5) = {4,9,3,7,5}

For i = 1 To 4
For j = i + 1 To 5
m = vec(i)
vec(i) = vec(j)
vec(j) = m
j = j + 1
Next
i = i + 1
Next

En los pasos anteriores vemos dos bucles anidados, esto sirve para intercambiar las posiciones de los datos del vestor o matriz, mediante un amemoria alterna(m).

Y finalmente aparecerá :

3
4
5
7
9

Llenar un ComboBox

En este post vamos a c'ver como cargar de datos un ComboBox en el metodo en el evento Load del formulario.

Primaramente mostrare el codigo y luego pasare a explicarlo:

Dim db As New SqlDataAdapter("SELECT DISTINCT cod_art FROM productos", cn)
Dim dt As New DataTable
db.Fill(dt)

Me.ComboBox1.DataSource = dt
Me.ComboBox1.DisplayMember = "cod_art"
Me.ComboBox1.ValueMember = "nom_art"

donde:
  1. db es la senetcia sql
  2. dt es el datatable


Para la cual los datos de la sentencia sql se guardan el DataAdapter(db) en memoria, para la cual se debe mandar la conexion(cn) como parametro:

Dim db As New SqlDataAdapter("SELECT DISTINCT cod_art , nom_art FROM productos", cn)

Luego los datos del DataAdapter pasan a un DataTable(dt) y son llenados mediante el metodo Fill.

db.Fill(dt)

Finalmente pasamos los datos del DataTable al ComboBox mediante el metodos:

  • DataSource: Guarda todos los datos del DataTable
  • DisplayMenber: Muestra los datos dentro del ComboBox del campo elejido
  • ValueMenber: Guarda los datos del campo elegido.

Me.ComboBox1.DataSource = dt
Me.ComboBox1.DisplayMember = "cod_art"
Me.ComboBox1.ValueMember = "nom_art"