Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
  #2  
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
  #3  
Antiguo 30-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
  #4  
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 Notevi fecha: 30-08-2012 a las 15:47:52.
Responder Con Cita
  #5  
Antiguo 30-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
  #6  
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
  #7  
Antiguo 30-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Creo no entender el problema que se te produce utilizando el código que te puse en el mensaje #8.
Para que nos entendamos mejor te adjunto un pequeño ejemplo con dos forms. En Form5 un ADOQuery conectado a la tabla country de dbdemos.mdb (viene con Delphi), al pulsar un botón ejecuta un código básicamente igual al que te puse y muestra los campos del registro actualmente seleccionado en 5 edits residentes en Form2, que previamente fué quitado de Auto-create forms.

Espero te sirva de guía o para que puedas decirme que es lo que no estoy entendiendo de tu problema.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-09-2012 a las 00:00:27.
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 20:05:30.


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
Copyright 1996-2007 Club Delphi