Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como intercambio información entre formularios (https://www.clubdelphi.com/foros/showthread.php?t=26749)

pyanqn 02-11-2005 16:37:57

Como intercambio información entre formularios
 
hola, les comento que estoy aprendiendo delphi, y tengo un problemita, tengo dos formularios, uno llama al otro, pero quiero que el segundo retorne los datos que son cargados alli, al primero y este pueda procesarlos, hasta el momento no encontre la forma de hacerlo...

Gracias.

epuigdef 02-11-2005 16:51:06

cómo llamas al segundo formulario desde el primero?


Lo más fácil sería poner variables en la sección PUBLIC del segundo, y entonces desde el primero las puedes acceder: Form2.variable.

Un ejemplo de código sería:

Código Delphi [-]
 
   var form2 : TForm2;
 
  form2 := TForm2.create(nil);
 
  if (Form2.showmodal) then
  begin
    mivariable := Form2.variable;
 
  end;
Edu

pyanqn 02-11-2005 16:59:48

Lo que inteno es: Aprietas un boton y abre una ventana que muestra un DBGrid, cuando selecciones un fila, y aprietes el boton aceptar en esa ventana, se cierra, y en la ventana en la que llamó, quiero tener disponibles esos datos.

El codig que uso es:

Application.CreateForm(TFrmBuscar, FrmBuscar);
try
FrmBuscar.ShowModal;
//Aqui debo obtener los datos?, cómo?
finally
FrmBuscar.Free;
end;

Héctor Randolph 02-11-2005 17:08:56

Si lo que tienes es un DBGrid, la información debes obtenerla directamente del DataSet.

Es decir recupera la información directamente de los campos.

Si la tabla está en el FrmBuscar entonces haz algo así

Código Delphi [-]
     if FrmBuscar.ShowModal=mrOk then
     begin
        //Aqui debo obtener los datos?, cómo?
        Var1:=FrmBuscar.Table1.FieldByName('NombreDeMiCampo').AsString;
        // etc..
     end;
end;

pyanqn 02-11-2005 17:16:11

Si, claro que puedo obtenerla del dataset, pero, decime si estoy en lo cierto.
La DBGrid presenta varios registros, el usr selecciona uno, y pulsa un boton aceptar, ahora del otro lado, en el dataset quedo apuntando al registro que selecciono?

Héctor Randolph 02-11-2005 17:24:22

Esa es la idea, cuando seleccionas algo en un DBGrid, el puntero de registros se desplaza hasta esa nueva posición y ahi se quedará mientras no hagas más cambios.

Un saludo.

Neftali [Germán.Estévez] 02-11-2005 17:25:20

Cita:

Empezado por pyanqn
...y en la ventana en la que llamó, quiero tener disponibles esos datos.

Código Delphi [-]
    Application.CreateForm(TFrmBuscar, FrmBuscar);
        try
           FrmBuscar.ShowModal;
           //Aqui debo obtener los datos?, cómo?
        finally
           FrmBuscar.Free;
   end;

Define una propiedad pública en el form FrmBuscar (por ejemplo ValorResult), antes de cerrarlo asignale el valor a la propiedad.
En el código que tienes arriba puedes consultar el valor de la propiedad antes de liberar el form:

Código Delphi [-]
 Application.CreateForm(TFrmBuscar, FrmBuscar);
  try
  FrmBuscar.ShowModal;
    Str := FrmBuscar.ValorResult;
  finally
    FrmBuscar.Free;
  end;

pyanqn 03-11-2005 16:14:55

Ok, gracias.
Pero ahora, disculpa que pregunte esto:
¿En que parte debería declara la variable que deseo que sea publica?

Unit tanto
Interface
Type //Aca se define el formulario
...
End;//Termina la definicion
Var
//Seria aqui?, porque si es así no puedo verla desde otro mudulo.
Implementation
...

__hector 03-11-2005 17:04:13

Tienes que declararla dentro de la deficion de la clase. Tu archivo .pas debe tener algo como:

TFormulario = Type(class)
propiedades..
.....
procedimientos..
....
funciones ...
...
public
{declara las publicas aqui}
private
{declara las privadas aqui}
..


La franja horaria es GMT +2. Ahora son las 00:17:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi