Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al pasar datos entre 2 formas (https://www.clubdelphi.com/foros/showthread.php?t=19326)

maguib 10-03-2005 17:21:42

Problema al pasar datos entre 2 formas
 
Hola, tengo un problema con mi aplicación, estoy tratando de pasar los datos de una forma a otra pero me marca un error de violación de dirección.

Una de las formas se crea al momento de llamarla desde un menú, y cuando estoy en dicha forma mando llamar otra que ya se autocreó desde que se carga el sistema, el problema es que cuando ya selecciono los datos y los quier pasar a la forma primera me marca ese error.

Agradezco de antemano la ayuda recibida.

Gracias.

marcoszorrilla 10-03-2005 18:06:44

El error es típico de una llamada a un componente que no existe o que aún no ha sido creado, pero tendrías que poner el código que utilizas para ver si te podemos ayudar.

Un Saludo.

maguib 10-03-2005 18:43:28

Problema para pasar datos entre 2 formas
 
Hola, muchas gracias por responderme y con mucho gusto aquí está el código:

procedure TFFacturacion.SpeedButton1Click(Sender: TObject);
var
FBusquedas:TFBusquedas;
begin
FBusquedas:=TFBusquedas.Create(self);
FBusquedas.ShowModal;
end;

Es el código de la primera forma en donde se manda llamar a la otra de donde se supone voy a extraer los datos.

En la siguiente forma a través de un botón voy a regresar los datos.

procedure TFBusquedas.SpeedButton1Click(Sender: TObject);
begin
FFacturacion.Edit1.Text:=DBGrid1.Fields[1].Text; -- Aquí marca error--
close;
end;

Al momento de hacer esto la forma no se cierra, se queda activa después de mandar el mensaje y tampoco me asigna los datos al objeto de la forma anterior.

Gracias por tu ayuda.

marcoszorrilla 10-03-2005 19:01:07

Mira este ejemplo que funciona sin problemas, adáptalo a tus necesidades, como ves he hecho un "Use", del otro Formulario.

Código Delphi [-]
  private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 uses Unit2;
 
 {$R *.DFM}
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Edit1.Text:=Form2.DBGrid1.Fields[1].Text;
 end;

Un Saludo.

maguib 10-03-2005 19:17:41

Gracias por la ayuda!!
 
Hola nuevamente, muchísimas gracias por la ayuda.

Lo que tu me pasaste me ayudó a encontrar otra solución que funcionó.

Saludos

marcoszorrilla 10-03-2005 20:07:38

Sería conveniente que nos dijeras cuál fue la solución que finalmente aplicaste, ten en cuenta que este hilo lo han podido leer mucha más gente y se quedará con la duda de cual fue la solución que se aplicó.

Un Saludo.

maguib 10-03-2005 20:19:33

Como pasar los datos entre 2 formas
 
La solución que encontré quizás no es la más óptima pero si funciona... quizás alguien tenga una mejor alternativa, la mía es la siguiente.

--forma que manda llamar a otra forma--
procedure Form1.SpeedButton1Click(Sender: TObject);
var
Form2:TForm2;
begin
Form2:=TForm2.Create(self);--llamado
Form2.ShowModal;--se muestra la forma
SpeedButton2.Click;--se ejecuta el botón cuando la otra forma se cierra
end;

procedure TForm1.SpeedButton2.Click(Sender: TObject);
begin
Edit1.Text:=inttostr(DataModule.nomvble); --asignación del dato
end; --contenido en la vble.

--Asignación del dato en la forma 2a. a la variable global
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
DataModule1.nonvble:=strtoint(Edit1.Text);
end;

DataModule1
(esta es la sección del DataModule
public
{ Public declarations }
//variable para guardar los datos de la Form2)
nomvble:integer;

Quizás son muchos pasos y alguien como mencioné anteriormente sabe una mejor respuesta, pero por lo pronto ya solucioné mi problema que era urgente.

Gracias por la ayuda.


La franja horaria es GMT +2. Ahora son las 11:44:10.

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