Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Paso de parametros entre form

Estas en el tema de Paso de parametros entre form en el foro de C/C++ en Foros del Web. Hola a todos. Estoy programando con Visual C++ 2005, tengo que pasar unos parametros de un form (pantalla) a otro y no se como puedo ...
  #1 (permalink)  
Antiguo 29/05/2006, 11:33
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta Paso de parametros entre form

Hola a todos.

Estoy programando con Visual C++ 2005, tengo que pasar unos parametros de un form (pantalla) a otro y no se como puedo hacerlo. Tengo que pasar los parametros porque en la segunda ventana tengo que ejecutar un algoritmo de calculo con ellos, y buscar en una base de datos los correspondientes para mostrarlos (lo cual aun no se como se hace...).

Saludos.
  #2 (permalink)  
Antiguo 29/05/2006, 13:55
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 6 meses
Puntos: 2
Hay Hermano...

Antes de empesar a programar tendrias que aprender la metodologia de la programacion, en este caso la POO(Programacion Orientada a Objetos).

Un formulario es un objeto, por tanto a qui la cuestion es pasar informacion o mensajes entre dos Objetos.

Supongo que estas usando el segundo formulario como un Dialogo.
Podrias crear un constructor parametrizado si es que los datos los pasas al crear el dialogo.

public: DlgOperacion(int val1, int val)
{
this->oper2 = val1;
this->oper2 = val2;
}

a la hora de crear harias:

DlgOperacion^ MiDlg = gcnew DlgOperacion(val1, val2);
MiDlg->ShowModal();
MiDlg->Show(); //SI no es Modal.

SI tus datos los quieres pasar una vez que ya haz creado y mostrado tu dialogo. puedes hacerlo atraves de propiedades.

en DlgOperacion:

public: property Valo1 int
{
void Set(int value)
{
val1 = value;
}
}
public: property Valo2 int
{
void Set(int value)
{
val2 = value;
}
}

public: property Result int
{
int Get()
{
return val1;
}
}

de esta forma puedes asignar valores y obtener el resultado como caulquier otra propiedad.

//crearias:

DlgOperaciones^ miDlg = gcnew DlgOperaciones();
miDlg->ShowModal();

//En cualquier otro lugar harias.

miDlg->Valor1 = 10;
miDlg->Valor2 = 20;
//hacer las operaciones y despues:

int Result = miDlg->Result;

Eso es lo basico.

Saludos.
  #3 (permalink)  
Antiguo 30/05/2006, 02:00
 
Fecha de Ingreso: mayo-2006
Mensajes: 40
Antigüedad: 18 años, 5 meses
Puntos: 0
Cuando mencionas que tienes que pasar unos parametros de un form a otro usando Visual C++ 2005, me imagino que con eso te refieres a que creaste dos proyectos de Visual C++ usando la opcion de Aplicacion de Windows Forms (.NET) y quieres intercambiar datos entre ellos. Pero estos forms que creas usando el IDE de Microsoft realmente vienen siendo dos programas comunes y corrientes en el ambiente de Windows que corren cada quien en sus ventanas separadas y todos sus datos y codigos vienen separados y no interfieren unos con otros, tanto en su espacio de direcciones de datos como en su espacio de direcciones de codigo. Si quieres hacer visibles los datos de un form en otro, entonces tienes que utilizar alguno de los mecanismos que para comparticion de datos proporciona Windows entre los programas que corren en su plataforma. Algunos de ellos son utilizar el portapapeles, el antiguo protocolo DDE, compartir memoria a traves de librerias DDL, utilizar OLE/COM, etc. Hasta puedes usar el mecanismo de escribir los datos en un archivo de disco y que el otro programa este monitoreando este hasta que encuentre datos en el. Aunque la verdad todos estas maneras de compartir datos entre procesos ya estan un poco obsoletas y seguramente con el advenimiento de la plataforma .NET ya ha de haber maneras mas practicas o faciles para el intercambio de datos. Si alguien de entre los compañeros de este foro tiene alguna informacion al respecto se agradeceria que nos la diera para estar mas al dia con respecto a esto.
  #4 (permalink)  
Antiguo 31/05/2006, 05:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
Gracias

Hola,
Gracias a los dos, preguntaba por lo que me ha contestado Nivel7, pero la respuesta de pitukilloloco me ha dado una idea de como ampliar mi programa en el futuro...
Lo dicho, Gracias. Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.