Visual Basic.NET - Duda con la declaración de objetos de una clase

 
Vista:

Duda con la declaración de objetos de una clase

Publicado por Miguel (3 intervenciones) el 30/01/2009 21:29:06
Hola a tod@s. Es la primera vez que escribo aquí y tengo una duda que no soy capaz de resolver.

Os pongo un ejemplo, yo creé una clase Persona que tiene DNI, Nombre y Telefono.

Luego en el formulario tengo un botón cualquiera que cuando le doy me crea un objeto de esa clase llamado Cliente, con DNI "00000000T", Nombre "Juan" y Teléfono "999887766".

El problema es el siguiente, ahora desde otro botón quiero acceder a ese objeto para cambiarle el DNI, o el nombre o lo q sea mediante un método Asignar_DNI, o Asignar_Nombre y no me deja porque estoy accediendo desde fuera.

Este problema se puede resolver declarando el objeto Public al principio del Formulario (de la Class Form1), pero ahora viene el siguiente problema, que es que no puedo crear otro objeto Persona porque me volvería a pasar el problema de no poder acceder desde ningún sitio.

Cómo podría resolver esto??

Un saludo y gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda con la declaración de objetos de una clase

Publicado por Damian (824 intervenciones) el 30/01/2009 23:02:19
Si la clase esta como publica(Public Class Persona) no deberias tener problema de manipularla dentro de tus form, claro que en los forms en donde llames a tus miembros o metodos debes instanciar el objeto, seria algo asi:
Public Class Form1

Dim nvoPers As New Persona

'Luego accedes con el punto(.)
nvoPers.DNI =txtDni.Text
nvoPers.Nombre=txtNombre.Text
.
.
.
End Class

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con la declaración de objetos de una clase

Publicado por Miguel (3 intervenciones) el 30/01/2009 23:09:42
Sí, si eso me funciona, pero si lees bien mi post, luego tengo otro problema. A ver si soy capaz de explicarme bien.

Si hago lo que tú me dices, me creará bien el objeto Persona y podré acceder a él sin problemas, pero sólo tendré un objeto Persona, si quiero crear otro al hacer click en un botón, tendré que poner dentro del Evento Click de ese Botón un "Dim P as new Persona()", con lo que me creará otro objeto Persona (que es lo que quiero) y no podré acceder a este nuevo objeto desde otras partes de la clase Form... no sé si me expliqué bien.

Lo que quiero es poder crear varios objetos Persona en tiempo de ejecución para luego meterlos en un Array que contenga objetos Persona (algo así). Quiero aclarar que no utilizo Base de datos, todo esto sería sin bases de datos.

Un saludo y gracias por todo Damián, espero respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con la declaración de objetos de una clase

Publicado por Damian (824 intervenciones) el 31/01/2009 00:11:35
Solo vas a poder acceder a ese objeto desde donde lo declaraste, si esta declarado en el evento click del boton solo lo podras usar ahi adentro. Lo unico seria declararlo como Public dentro de la class del form y puedes declarar todos los que quieras
Public P as new Persona()
Public P1 as new Persona()
Public P2 as new Persona()

No se si a eso te refieres o sigo interpretando mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con la declaración de objetos de una clase

Publicado por Miguel (3 intervenciones) el 31/01/2009 01:13:39
Gracias Damián pero al final lo solucioné yo.

Es que era un caso especial, como tú me lo dijiste, funciona perfectamente, pero yo lo que quería era que cada vez que le diera a un botón me creara un nuevo objeto Persona para luego meterlo en un Array de objetos Persona. Al final declaré el objeto Persona en el evento Click del Botón y así me funciona perfectamente porque cada vez que entra en ese evento crea un objeto nuevo.

Fue una chorrada que seguro que cualquiera que viera el código y supiese lo que tenía que hacer se daría cuenta, pero yo andaba despistado.

De todas formas, muchas gracias Damián.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar