para los que quieren iniciarse en VB.net

Iniciado por Free-Knowledgend, 22 Febrero 2005, 20:21 PM

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

Free-Knowledgend

puede que para muchos sea una estupidez, pero asi empezamos todos, enga aqui os dejo el primer ejercicio que hice en VB.net explicadito  ;) ;) ;) ;)
----------------------------------------------------------------------
el ejercicio consiste en hacer un cuadrado (un panel) con un grupos de 4 botones a la izquierda (los botones seran labels). En el grupo de botones, pondremos colores. Para ello seleccionamos uno de los labels y miramos en la ventana propiedad de la esquina inferior derecha, y bsucamos la propiedad Text, donde escribimos un color para cada uno de los 4 botones del grupo.



nota: si queremos podemos cambiar otras propiedades de los botones (labels) como la fuente, centrarlos... etc



-----------------------------------------------------------------------

bueno ahora pasamos a la parte dificil de todos los programas que es el codigo... aqui es donde escribimos todos los eventos, condiciones y efectos que le ocurriran a nuestro programa

código:

para ir a la ventana de código, pulsamos F7, para volver a la de diseño, pulsamos Shift + F7
para ello, debemos iniciar los efectos con eventos
escribimos private sub el nombre de diseño del objeto que queremos tratar (que podemso ver y modificar en la ventana propiedades habien seleccionado el objeto, en la propiedad Design name
a continuacion escribimos un guion bajo y el evento (podemso ver la lista de eventos haciendo click derecho y "Complete word")
tambien se puede hacer haciendo doble lick en la ventana de sieño en un opbjeto, esto nos llevara a la ventana de codigo y nos escribira directamente el evento Click en el objeto que hemos clickeado
IMPORTANTE: tras haber escritos todos los efectos de ese eevento, tenemso que escribir End Sub para termianr el evento

ahora vamos a crear los efectos... para modificar una propiedad de un objeto, escribimos tras el evento que lo condiciona su nombre de diseño, un punto y la propiedad que queremos modificarle. de esta forma, podemos cambiar cualqueir propiadad del objeto,
por ejemplo, el color del fondo (Backcolor que sera la propiedad que utilizemos con los botones (labels) de colores

bien empezamos, azemos doble click en el label yen la ventana de codigo escribimos "Panel1.Backcolor =" para asignarle una valor a esta propiedad, escribimos un color. para ver los colores que podemso seleccionar, vamos a view --> other windows --> object browser --> system drawing --> system drawing --> y miramso el color que nos gusta entre las opcioens que nos dan (entre las opciones con el icono de propiedad )
de este modo vamos aplicando a los eventos de click encada boton (label) cambiando el valor de la propeidad back color en el codigo, nos dara algo asi



    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        Panel1.BackColor = System.Drawing.Color.Red
    End Sub

    Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
        Panel1.BackColor = System.Drawing.Color.Blue
    End Sub

    Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
        Panel1.BackColor = System.Drawing.Color.Yellow
    End Sub

    Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click
        Panel1.BackColor = System.Drawing.Color.Green
    End Sub
End Class


para verificar si esta bien escrito, podemso darle a F5 y nos hara una especie de "vista previa" de loq eu daria el problema

bueno si alguein encuentra algo mal explicado o mal hecho que lo diga que yo todavia soy muy newbie en el tema  :-[ :-[ ;) ;)

bueno suerte y saludos  ;) ;) ;)

P.D: al principio lo iba a acer con cambios de posicioens tambien, pero se me fue al luz a la mitad de la explicacion y lo termianre otro dia  ;) ;) ;)

para los que quieran investigar

os tendria que dar algo asi

Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Free-Knowledgend

#1
vaya una txintxetita que ilusion  ::) ::) ::)  ;D ;D ;D

bueno disculpad que este tardando en continuarlo, pero he estado muy ocupado y no he podido apenas pasarme por el foro, este finde prometo que lo terminare  ;) ;) ;) ;)
Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Free-Knowledgend

#2
bien continuo el ejercicio que habia comenzado con cambios de posicion en el panel:
primero en diseño, creamos un groupbox con 4 labels en su interior, uno con el text arriba, otro con abajo, otro con izquierda y otro con derecha. estos labels moveran el cuadrado hacia el lado correspondiente, peor no lo dejaran en una posicion fija, es decir, al clickear arriba no iran siempre a una posicion "y" sino que iran mas arriba de la posicion "y" actual.... jdoer que mal me explico, estos es desesperante xD... bueno, en el codigo lo explico mas detalladamente  ;) ;) ;)



--------------------------------------------
Codigo[/u]

bien ahora tenemos por un lado un panel al que podemos cambiar el color y por otro cuatro botones, ahora tenemos que configurar dichos botonees para que cambein la posicion del panel.

tal y como lo hemso hecho con los colores, haremso doble lick en el label con el text arriba para acceder a su codigo con el evento Label1_Click
la propiedad que establece la y maxima del panel es la propiedad Panel1.Top
para mover hacia arriba o hacia abajo, tenemso que modificar entonces el valor de esta propiedad, asi que debajo del evento escribimos "Panel1.Top ="
el valor que le asignaremos a este objeto tenemso que elegirlo nosotros. para ello pasar a la pantalla de diseño (shift + F/) y seleccionar el panel. en la pantalla de propiedades podemos ver  la propiedad location. acemos doble click y nos saldran dos numeros x e y. apuntamos el numero y en un bloc de notas. ahora desplazamos el panel un poco hacia arriba, con cuidado de no moverlo horizontalmente. volvemso a mirar su y y lo apuntamos de nuevo.
lo siguiente sera restar el segundo valor de y al primero y obtendremos un valor (que llamaremsoa partir de ahora y' que obligatoriamente sera negativo. nos apuntamso este numero, ponemos de nuevo el panel en el valor de y que tenia al principio y pasamos a la pantalla de codigo (F7)
ahora, al lado de le asignamso el siguiente valor a la propiedad Top
Panel1.Top = Panel1.Top + *
(* es igual al numero obtenido anteriormente, con lo cual en realidad nos tendria que dar una resta al ser este numero negativo.
este valro de la propiedad lo que ara es bajar el valor actual de y haciendo asi que el panrel suba con respecto a su posicion anterior

hacemos el mismo procedimiento con el label abajo, solo que esta vez cogemos el opuesto de y', o sea, un numero positivo (|y'|

para moverlo hacia la izquierda o hacia la derecha, solo tenemos que modificar el valor de la propiedad .Left del objeto de la misma manera que hemso modificado el valor de la propiedad .Top y sustituyendo todos los valores y por los valores de x


    Private Sub ComboBox1_Selected()
        If ComboBox1.SelectedItem = "D:\" Then
            TreeView1.Nodes.Add("D:\")
        End If
    End Sub

    Private Sub Arriba_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Arriba.Click
        Panel1.Top = Panel1.Top - 45
    End Sub


    Private Sub Abajo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Abajo.Click
        Panel1.Top = Panel1.Top + 45
    End Sub


    Private Sub Izquierda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Izquierda.Click
        Panel1.Left = Panel1.left - 90
    End Sub


    Private Sub Derecha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Derecha.Click
        Panel1.Left = Panel.Left + 90
    End Sub


-----------------------------------------------------
el proximo finde si recuerdo como se hacia pongo uan cosilla de un termometro que nos da temperaturas en ºCelsius y Farenheit  ;) ;) ;) ;)

P.D: ya se me explico bastante mal, si alguien no me ha entendido algo que lo postee

un saludo  ;) ;) ;) ;)

Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Free-Knowledgend

#3
bueno pues aqui os dejo las screens de un emulador de logeado que hize hace algun tiempo para lo que querais ir intentandolo.... cuando tenga mas tiempo, amñana espero, pondre el codigo y una explicacion lo ams detallada posible

saludos  ;) ;) ;) ;) ;)

Antes de introducir usuario y password


Después de introducirlos (confirmación)
Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Free-Knowledgend

#4
perdon por la tardanza, peor no eh tenido mucho tiempo  :-[ :-[ :-[

ahiva:

Código:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Button1.Enabled = False

        If TextBox1.TextLength < 4 Then
            MsgBox("Rellena los campos correctamente(el nombre de usuario debe de ser de al menos 4 carácteres)")
            Textbox1.text = Nothing
        End If

        If TextBox2.TextLength < 6 Then
            MsgBox("Rellena los campos correctamente(el password debe ser de al menos 6 carácteres")
        End If

        If Not TextBox1.TextLength < 4 And Not TextBox2.TextLength < 6 Then
            Button1.Enable = False
            GroupBox2.Visible = True
            Label6.Visible = True
            Label5.Visible = True
            TextBox1.ReadOnly = True
            TextBox2.ReadOnly = True
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        If TextBox1.TextLength < 4 Then
            MsgBox("Rellena los campos correctamente(el nombre de usuario debe de ser de al menos 4 carácteres)")
        End If

        If Not TextBox2.Text = TextBox3.Text Then
            MsgBox("La contraseña no es válida")
            Label6.Text = Val(Label6.Text) - 1
        End If

        If TextBox2.Text = TextBox3.Text Then
            MsgBox("Has ingresado")
            Close()
        End If

        If Val(Label6.Text) = 0 Then
            MsgBox("Por motivos de seguridad, no podras volver a logearte hasta pasadas 24 horas")
            Close()
        End If

    End Sub

End Class



como podeis observar el codigo es muy corto y muy simple
;) ;) ;) ;)

os voy a hacer uan descripcion de los objetos que lo componen sepradamente y del codigo que se les atribuye en el programa


  • un primer groupbox,  donde el "usuario" tendra que introducir su password y su nombre de usuario. en su interior
           
             
  • colocad 1 label con el text "Usuario" al lado del cual pondreis un textbox para introducirlo, con una maxlength de 8 (esto quiere decir que solo podran introducirse 8 carácteres en este campo). el nombre de usuario tendra que tener entre 4 y 8 caracters. Bien, el maximo de 8 caracteres ya lo tenemos definido con la propiedad maxlength, pero, como hacemso para poner un kminimo de caracteres? bien, de esto se ocupara esta parte del codigo:


            If TextBox1.TextLength < 4 Then
                MsgBox("Rellena los campos correctamente(el nombre de usuario debe de ser de al menos 4 carácteres)")
                Textbox1.text = Nothing
            End If


    el evento que en este codigo, el evento que lo desencadenara sera button1_click

    1)ponemos una condicion, que se introduce siempre por If, tras lo cual ponemos la condicion, en este caso es textbox1.textlength < 4, es decir que hay menos de 4 caracteres en  el textbox1 al pulsar el botton 1. Tras poner la, o las condiciones (podemos poner varias uniendolas con la palabra And, de manera a que si no se cumple una de ellas la condicion no sera valida, escribimos Then,que significa entonces..., que dara paso a lso efectos que queramos poner. CUando acabemos de poner todos los efectos de nuestra condicion, le daremso fin escribiendo End If al final de esta (todo esto sale semi automaticamente, pero conviene que lo sepais  ;) ;) ;) ;)
    los efectos de esta condicion seran los siuientes:
                     - Por una parte, se enviara un mensaje explicativo al "usuario" en el que se le explica los errores que ha cometido

                MsgBox("Rellena los campos correctamente(el nombre de usuario debe de ser de al menos 4 carácteres)")

                     - Al mismo tiempo, vaciamos de caracteres el textbox1:

    Textbox1.text = Nothing

    Nota: el valor nothing tambien puede escribirse mas simplemente habriendo y cerrando comillas ""

    2)si los datos han sido rellenados correctamente, al logearnos, seria una estupidez dejar a nuestro usuario cambiar el nombre de usuario o la contraseña introducidos anteriormente, asi que lo bloquearemos, cambiando el atributo de la propiedad Read Only (solo lectura) de False a True

            If Not TextBox1.TextLength < 4 And Not TextBox2.TextLength < 6 Then
                TextBox1.ReadOnly = True
            End If


           
  • Luego, en el mismo GroupBox1, colocad otro label con la palabra password y al lado un textbox al que, siguiendo las instruccioans y el codigo que he puesto para usuario, forzareis a que el numero de caracteres este entre 4 y 6.De la misma manera, queremos que las letras introduccidas en este campo no aparezcan, y aparezcan en su lugar asteriscos, asi que buscamos la propiedad PasswordChar, es decir, el caracter del password, o sea el caracter que aparecera en lugar de las letras y le pones un valor de *, podreis comprobar  que cuando escribis en este campo, solo pareceran asteriscos. Como anteriormente con el nombre de usuario, este campo sera bloqueado (propeidad Read Only si los datos son correctos al clickear en Log in

            If Not TextBox1.TextLength < 4 And Not TextBox2.TextLength < 6 Then
                TextBox2.ReadOnly = True
            End If


           
  • Un boton login, que sera el desencadenador de todos los efectos anteriores, y que sera bloqueado si los datos introducidos son correctos, de la siguiente forma

            If Not TextBox1.TextLength < 4 And Not TextBox2.TextLength < 6 Then
            Button1.enable = false
            End If

    La propiedad Enable indica si el objeto esta activado o no (false significa descativado y true activado)


  • un segundo groupbox, donde el "usuario" confirmara su password volviendo a introducirlo.

    1) para hacerlo mas real, haremos que al principio este grupbox no este visible, asi que desde el principio le ponemos el valor False a la propiedad Visible del GroupBox. Al volver invisible al groupbox, volveremos tambien invisibles a todo lo que hemos colocado en su interior
    2) si los datos son introducidos correctamente, se mostrara el groupbox2, cambiando el valor de su propiedad Visible a True

            If Not TextBox1.TextLength < 4 And Not TextBox2.TextLength < 6 Then
                GroupBox2.Visible = True
            End If


           
  • en este groupbox introducimos un label password y un textbox para escribirlo exactamente igual que los hemos introducido en el anterior groupbox.

           
  • ponemso tambien un boton con un text "confirmar". Al hacer click con sete boton, queremso que el programa verficique si es el mismo password introducido anteriormente y nos salga un mensaje ed que hemos ingresado si es asi.

            If TextBox2.Text = TextBox3.Text Then
                MsgBox("Has ingresado")
                Close()
            End If

    El efecto Close() cierra la ventana del programa.


  • por ultimo, agregamos 2 labels a la derecha, uno con el etxt "intentos reastantes..." y otro con el text 3, ambos invisibles desde el principil  peor se volveran visibles al clickear en login con unos datos correctos, al igual que el groupbox2
    1) Cada vez que introdzcamso un password erroneo en la confirmacion, se nos restara un intento en el label de la izquierda:

            If Not TextBox2.Text = TextBox3.Text Then
                MsgBox("La contraseña no es válida")
                Label6.Text = Val(Label6.Text) - 1
            End If

    La palabra Not delante de una condicion, exprime que si no se cumple la condicion se relaize el efecto. Si El password no es el mismo, un mensaje con el texto "La contraseña no es valida", sera enviado. El comando Val() coge la valor algébrica de un texto, en este caso del label6 (numero de intetos restantes)

    2)Si los intentos restantes llegan a 0, se cerrara la ventana por motivos de seguridad, ya que podria ser que alguien estubiera probando adviinar la contraseña de un usuario:

            If Val(Label6.Text) = 0 Then
                MsgBox("Por motivos de seguridad, no podras volver a logearte hasta pasadas 24 horas")
                Close()
            End If


    Espero haberma expresado bien, si no entendeis algo postearlo, he intentado hacerlo lo mejor posible.

    saludos y suerte  ;) ;) ;) ;) ;)
Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


el_galan_real

Hola! Saludos! Gracias por hacer un manual como este :) ya que he intentado aprender vb desde hace ya mucho tiempo y no lo había logrado :-[ pero con esos ejercicios es seguro que lo logro. Saludos!

JuszR

#6
El ejemplo del login es muy bueno. ;)
- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

T_O_N_N_Y

Muy buenos los ejercicios ;)

Lo único que no consigo hacer añadir una etiqueta para centrar en los ejercicios primeros, utilizo este código:

indep.Left = (Screen.PrimaryScreen.WorkingArea.Width) \ 2
indep.Top = (Screen.PrimaryScreen.WorkingArea.Height) \ 2

A ver si me podéis decir cómo centrarlo, porque llevo intentándolo un ratillo y no encuentro la forma ;)
PD: "indep" es la etiqueta que se mueve.
La del ejercicio

Gracias

Darvein

gracias man , esta super   esa guia muchas gracias!
¿Ilusión o realidad?

el_chavo

wow me encantaria aprender hacer crakmes muchas gracias man