C/Visual C - Visual C#

 
Vista:

Visual C#

Publicado por Irene (2 intervenciones) el 10/12/2002 13:22:19
Tengo dos formualarios, en el primero tengo un vector y quiero acceder a él desde el segundo formulario.
Como puedo declarar el vector para poder acceder a él desde los dos formularios??
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:Visual C#

Publicado por El Mogur (202 intervenciones) el 10/12/2002 13:30:30
Hay muchas opciones. Aqui te pongo algunas

-- Opcion 1 --
Declaras el vector global a la aplicación, y ambos formularios pueden acceder.

-- Opcion 2 --
Los formularios, en vez de guardar un vector, guardan un puntero a un vector, que reciben como parámetro en el constructor.
La aplicación principal crea el vector antes de crear los formularios, y se los pasa en los constructores. Ambos formularios tienen acceso al mismo vector a través de su dirección, y un cambio en uno de ellos es visible en el otro.
La aplicación deberá al finalizar, borrar el vector que creó al principio.

-- Opción 3 --
El vector lo metes en el formulario 1 (como lo tienes ahora); haces el atributo público para que pueda accederse desde fuera. En ese caso, el formulario 2, deberá conocer al formulario 1 (bien porque es una variable global, o porque se le pasa como parámetro en el constructor, etc.), y accede al vector directamente.
Esta opción es un tanto chapuza.

-- Opción 4 --
Igual que la anterior, pero el vector es privado, y existe un método en el formulario 1 para acceder a él (que devuelve el vector; es decir una referencia al vector). El forrmulario 2 cuando lo necesita llama a ese método.

Ahora mismo no se me ocurren otras opciones.
De todas formas, estas son soluciones digamos de programación en C++. No sé si VC incluye en el ClassWizard algún método que te haga todo esto de forma automática.

Espero que te sirva!
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:Visual C#

Publicado por irene (2 intervenciones) el 10/12/2002 13:40:49
Ante todo muchas gracias, estoy buscando algo parecido a los módulos de visual basic, que creo que es la opción1, pero me puedes explicar como realizar la primera opción?
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:Visual C#

Publicado por El Mogur (202 intervenciones) el 10/12/2002 14:16:53
Te lo pongo con distintos ficheros.
Si tu vector es un vector de 100 enteros, por ejemplo:

--- Fichero MiVector.h ----
#ifndef __MiVectorH
#define __MiVectorH
extern int miVector[100];
#endif

--- Fichero MiVector.cpp ---
#include "MiVector.h"
int miVector[100];

--- Fichero del formulario 1---
// .....
#include "MiVector.h"
// .... y dentro de una función cualquiera
void CFormulario1::f() {
miVector[0] = ....;
}

Es decir, en los formularios, incluyes el fichero "MiVector.h", y utilizas la variable miVector, que es global.

Espero que te sirva!
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:Visual C#

Publicado por irene (1 intervención) el 10/12/2002 18:00:58
Creo que mi problema se incrementa, efectivamente con la versión anterior de Visual C++ (la 6), estabamos acostumbrados a trabajar con ficheros cabecera(.h) y ficheros fuente (.cpp).
Con visual net he creado MiVecto.h y MiVector.cpp.
En concreto en MiVector.cpp he puesto el include a MIVector.h.
El problema es que en Form1.cs no se puede poner un include, no te reconoce la instrucción.
He intentado poner un import y no te lo reconoce
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:Visual C#

Publicado por El Mogur (202 intervenciones) el 11/12/2002 00:33:38
Vaya! Perdona, el fallo ha sido mio. Aunque en el título pones "Visual C#", no me había dado cuenta. Todo lo que te he contado era para C++, no para C#, del que hoy por hoy no sé nada! :)

Espero que alguien pueda resolvertelo.
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:Visual C#

Publicado por Alvaro (122 intervenciones) el 12/12/2002 22:40:11
Por lo que he visto en una primera aproximacionm c# es una union entre Java y C++. ( al ver tu consulta e leido por primera vez un manual de C#)
Segun creo, tu vector debieses definirlo en un namespace dado.
Esto porque he visto la nstruccion:
using System; //El tutorial dice que System es un namespace.
el include es reemplazado por using nombre_del_namespace.
Si eso no es suficiente y sigue sin reconocer el vector, prueba utilizando nombre_del_namespace.vector al hacer la referencia a el, en java esto funcionaria.
De nada de esto estoy seguro.
SUERTE...

PD. Tu pregunta debiese estan en el foro de C Sharp, pero gracias por despertar la curiosidad de parte de este foro.
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