Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2012
astrosnik astrosnik is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 9
Poder: 0
astrosnik Va por buen camino
pasar datos de un form a otro

Hola eficsa gracias por responder te pongo el codigo del form 2 y del form5

Código Delphi
en form 2
Código Delphi [-]
implementation
USES
UNIT4, UNIT5;
en form 5:
Código Delphi [-]
implementation
uses
unit2;
 
procedure tform5.datos(sender: TObject);
begin
form2.Edit2.Text:=adoquery1.fieldbyname('perro').Asstring;
end;

el procedimiento datos es llamado por el evento ondblclick de un bdgrid del form5
y el error que da es el siguiente access violation at adress 004bebf9 in module proyect.exe. read of address 0000036c.

a ver si te sirve esta informacion.
pd si pongo la etiqueta para remarcar el codigo dice que no se me permite poner imagenes tendre cara de malo?

Última edición por ecfisa fecha: 29-08-2012 a las 21:38:40. Razón: Agregar etiquetas [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 29-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola astrosnik.

¿ Y Form2 ya fué creado cuando lo invocas en Form5 ?

Para salir de dudas, proba si de este modo desaparece el error:
Código Delphi [-]
implementation
uses
  unit2;
 
procedure tform5.datos(sender: TObject);
begin
   if Assigned(Form2) then
     form2.Edit2.Text:=adoquery1.fieldbyname('perro').Asstring;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-08-2012
astrosnik astrosnik is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 9
Poder: 0
astrosnik Va por buen camino
Gracias por tu ayuda ecfisa te comento:
La solucion que me has posteado si bien no da error tampoco produce cambios la mas raro es que el form2 es el que abre el form5 mediante un boton primero los abria en modal pero lo he cambiado por si era eso lo que producia el error el form 2 queda abierto mientras el form5 se ejecuta.

Muchas gracias por la ayuda compañero
Responder Con Cita
  #4  
Antiguo 30-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola astrosnik.

Cita:
La solucion que me has posteado si bien no da error tampoco produce cambios
En realidad no era una solución sino mas bién una prueba para identificar el problema.

Ahora intentalo de este modo:
Código Delphi [-]
implementation
uses
  unit2;
 
procedure tform5.datos(sender: TObject);
begin
  if not Assigned(Form2) then
    with TForm2.Create(nil) do
    try
      edit1.Text := adoquery1.fieldbyname('perro').Asstring;
      ShowModal;
    finally
      Free;
    end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 30-08-2012
astrosnik astrosnik is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 9
Poder: 0
astrosnik Va por buen camino
muchos errores y una luz

Hola de nuevo sobre todo agradecerte ecfisa tu ayuda porque empieza a darme un poco de luz

Código Delphi [-]
implementation
uses  unit2; 
procedure tform5.datos(sender: TObject);
begin  
  if not Assigned(Form2) then    
    with TForm2.Create(nil) do    
    try      
      edit1.Text := adoquery1.fieldbyname('perro').Asstring;      
      ShowModal;    
    finally      
      Free;    
    end;
end;

esto hace que me de un error al no encontrar el field del query aun haciendo referencia al form donde se encuentra asi que despues de muchas pruebas y mas errores he llegado a una conclusion ( casi seguro erronea dadas mis limitaciones) el problema me parece que viene porque al ser formulrios modales tienen el control de la aplicacion y no permiten manipular otro formulario por error llegue a una solucion que seguramente no sera todo lo limpia que debia, la voy a explicar por si alguno quiere corregirla o si le sirve de utilidad a alguien.

la solucion es usar otro form o un modulo que haga de puente en mi caso utilizare form4 que es el main de la aplicacion en el declaro una variable global y le asigno el valor en el procedimiento del form5

Código Delphi [-]
procedure tform5.datos(sender: TObject);
begin
  form4.perro:=adoquery1.FieldByName('perro').AsString);
  self.close
end;

despues doy la orden de cerrar el formulario y en la parte donde cree el form5

Código Delphi [-]
procedure TForm2.BitBtn1Click(Sender: TObject);
var
  varforms:tform5;
begin
  varforms:=tFORM5.Create(self);
  try
    varforms.Showmodal;
  finally
    Edit2.Text:=form4.perro;
    varforms.Free;
  end;

Aqui pasamos el valor de la variable puente al form 2 esto funciona perfectamente.
Si alguien se le ocurre como mejorar lo agradecere la ayuda asi como cualquier consejo que me haga aprender.

Última edición por Casimiro Noteví fecha: 30-08-2012 a las 15:47:52.
Responder Con Cita
  #6  
Antiguo 30-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola astrosnik.

En realidad no entiendo bién el problema por que si asignas el valor a Form2.Edit1 antes de mostrarlo modalmente, cuando llames al método ShowModal tiene que aparecer el valor en Form2.Edit1 (debo aclarar que por tu código pensé que el query estaba en Form5 y no en otro).

Pero de todos modos me parece conveniente poner tus querys, datasets, etc. en un TDataModule accesible a las unidades que lo precisen.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 30-08-2012
astrosnik astrosnik is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 9
Poder: 0
astrosnik Va por buen camino
Efectivamente ecfisa el query esta en el form5 quizas no me explique bien mi aplicacion tiene el form4 que es el main desde el cual abro el form2 en modal y desde el form2 abro el form5 en modal tambien el form2 no se cierra sigue abierto latente hasta que el form5 finalice quizas por eso no me deja manipularlo si se os ocurre cualquier otra solucion estare encantado de aprenderla
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar dato variable de un form a otro.. yevabas Varios 5 26-04-2011 20:45:48
pasar datos de un form a otro form vroa74 API de Windows 15 12-10-2007 19:11:52
pasar valores de variables de un form a otro oscarpinog Varios 7 12-08-2007 03:18:39
Error al pasar datos de un form a otro jcfonsecar Varios 6 12-07-2006 02:22:22
Pasar información de un form a otro davidgaldo Varios 3 10-02-2004 19:00:34


La franja horaria es GMT +2. Ahora son las 19:57:01.


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