Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
por favor necesito ayuda con unos formularios...

Hola a todos, gracias por su tiempo... a ver si me puedo explicar...
Tengo un form1 (principal) del cual llamo a un Form2 y este a su vez llama a un form3, form2 y form3 están disponibles (no los creo al arrancar), los creo en tiempo de ejecución, lo que necesito es poder pasar datos del Form3 al form2 (algo que parece sencillo) pero cuando trato de hacerlo me manda error.
Responder Con Cita
  #2  
Antiguo 23-05-2012
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
podrias decir que error te manda?
sin ese dato se pone complicado que alguien te pueda ayudar.....
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 23-05-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sólo el error, sino la manera en que intenta pasar los datos. Así sin más, es casi imposible.

// Saludos
Responder Con Cita
  #4  
Antiguo 23-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
gracias por sus respuestas claro que pena: el error que manda es Access Violation y trato es simplemente de mandar los datos que Tiene un DBGrid (que está en Form3) a unos Edit's (que están en Form2), la cuestión es que estos 2 formularios los creo en tiempo de ejecucion: con F:= TForm2.create(self) ya saben...
Responder Con Cita
  #5  
Antiguo 23-05-2012
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
eso no tiene nada que ver
creo que deberias colocar mas codigo.. de como lo estas haciendo...
donde lo invocas... como pasas los datos etc..

para poder entenderlo mejor
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 23-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
Bueno lo que hago es lo siguiente:
En Form1...
implementation
Uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var f: TForm2;
begin
F:= TForm2.create(self);
try
F.Showmodal;
finally
f.free;
end;
end;


En formulario 2:...

implementation
uses unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var f: TForm3;
begin
F:= TForm3.create(self);
try
F.Showmodal;
finally
f.free;
end;
end;


Y en el formulario 3

implementation
Uses Unit1, Unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.Edit1.Text:= edit1.Text;
form1.Edit2.Text:= edit2.Text;
form2.Edit1.Text:= edit1.Text;
form2.Edit2.Text:= edit2.Text;
end;

y me manda el siguiente error:

Access Violation
Responder Con Cita
  #7  
Antiguo 23-05-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 arnovisr.

Por favor cuando incluyas código en tus mensaje utiliza TAG's para darle más legibilidad. Te pongo una imágen que explica el uso:



Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 23-05-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 de nuevo.

Suponiendo que Form1 sea el form principal, lo primero que surge preguntarse es:
Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
begin
  form1.Edit1.Text:= edit1.Text;
  form1.Edit2.Text:= edit2.Text;
  form2.Edit1.Text:= edit1.Text; // <===  ¿ Existe Form2 en el momento de esta asignación ?
  form2.Edit2.Text:= edit2.Text; 
end;

Una solución para evitar la exepcion es verificarlo:
Código Delphi [-]
  if Assigned(Form2) then
    form2.Edit1.Text:= edit1.Text;
  ...
Pero deberías asegurarte de poner Form2 igual a nil en el evento OnClose u OnDestroy de Form2.

De todos modos no es 'la' solución, deberías revisar el modo en que creas y llamas los forms.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 23-05-2012 a las 18:59:50.
Responder Con Cita
  #9  
Antiguo 24-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
Por favor alguien que me ayude, de verdad estoy varado...

Bueno señores, les cuento que todo está como al principio, con lo que me han dicho no he solucionado nada y ya he probado todo lo que me han sugerido...

A ver Form1, es el principal, los demás están disponibles (Project - Options - Forms - Available forms), por eso las creo en tiempo de ejecución: la Form2 desde la form1, y la Form3 desde la form2.

Código Delphi [-]
 
Form2:= TForm2.Create(self);
 try
  Form2.ShowModal;
 finally
  Form2.Free;
 end;

Y

Código Delphi [-]
 
Form3:= TForm3.Create(self);
 try
  Form3.ShowModal;
 finally
  Form3.Free;
 end;

Luego en la Form3, selecciono unas celdas de un DBGrid, que deben mandar esos datos a unos Edit's en Form2, de esta manera:

Código Delphi [-]
 Form1.Edit1.Text:= DBG.Fields[0].AsString;
 Form1.Edit2.Text:= DBG.Fields[1].AsString;
 Form2.ECodGrupo.Text:= DBG.Fields[0].AsString;
 Form2.EDescGrupo.Text:= DBG.Fields[1].AsString;

Y ahí está el problema: me sale el error, Access Violation, en cambio si los mando a los Edit's que coloco en el el Form1 y si los manda, pero los necesito es en el Form2. Gracias por la colaboración que me puedan dar...
Responder Con Cita
  #10  
Antiguo 24-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo que haces y tus explicaciones están muy confusas, por favor, explica claramente lo que haces, lo que quieres hacer, muestra el código (todo lo posible), etc.
Responder Con Cita
  #11  
Antiguo 24-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
La verdad, no se de qué otra manera explicar, esto...

Sospecho que me están evadiendo con la respuesta, considero que mi consulta ya ha sido lo suficientemente explicada, agradezco que me colaboren con el problema, pero si no saben como ayudar por favor no confundan más... no creo que haya mucho que explicar, cuando creo que está bastante explicada:

Tengo 3 formularios, uno principal y dos que creo de manera dinámica, o en tiempo de ejecución, lo que hago es crear uno a continuación del otro, y cuando trato de mandar datos del tercero al segundo me manda error, así de sencillo... en cambio si lo mandara al primero me sale bien, no veo que otra cosa haya que explicar... muchas gracias a los que me puedan colaborar...
Responder Con Cita
  #12  
Antiguo 24-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por arnovisr Ver Mensaje
Sospecho que me están evadiendo con la respuesta
Por supuesto, es que nos pagan demasiado poco por atender este servicio técnico, por eso no nos esforzamos mucho en contestar.

Cita:
Empezado por arnovisr Ver Mensaje
considero que mi consulta ya ha sido lo suficientemente explicada, agradezco que me colaboren con el problema, pero si no saben como ayudar por favor no confundan más...
Debes comprender que no somos muy inteligentes, nos gusta tener entretenido a nuestros clientes

Cita:
Empezado por arnovisr Ver Mensaje
Tengo 3 formularios, uno principal y dos que creo de manera dinámica, o en tiempo de ejecución, lo que hago es crear uno a continuación del otro, y cuando trato de mandar datos del tercero al segundo me manda error, así de sencillo...
"Me manda error", una explicación muy académica, muy clara, muy explicativa, cualquiera lo entiende

Venga, que tengas suerte.
Responder Con Cita
  #13  
Antiguo 24-05-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.

Cita:
A ver Form1, es el principal, los demás están disponibles (Project - Options - Forms - Available forms), por eso las creo en tiempo de ejecución: la Form2 desde la form1, y la Form3 desde la form2.
Estimado, ahora que sé como haces la creación de los forms, te diría que el error no se provoca en ella ni en el pasaje de datos de Form3 a Form2 y Form1.

A ver, esta fué la prueba que hice:

Form1:
Código Delphi [-]
implementation

uses Unit2;

procedure TForm1.btAbrirForm2Click(Sender: TObject);
begin
  Form2:= TForm2.Create(self);
  try
    Form2.ShowModal;
  finally
    Form2.Free;
  end;
end;

Form2:
Código Delphi [-]
implementation

uses Unit3;

procedure TForm2.btAbrirForm3Click(Sender: TObject);
begin
  Form3:= TForm3.Create(self);
  try
    Form3.ShowModal;
  finally
    Form3.Free;
  end;
end;

Form3:
Código Delphi [-]
implementation

uses Unit2, Unit1;

procedure TForm3.btPasarTextClick(Sender: TObject);
begin
  // Darle valores a los edits
  Edit1.Text:= 'Form3.Edit1';
  Edit2.Text:= 'Form3.Edit2';
  Edit3.Text:= 'Form3.Edit3';
  Edit4.Text:= 'Form3.Edit4';

  // Pasar a Edits de Form1
  Form1.Edit1.Text:= Edit1.Text;
  Form1.Edit2.Text:= Edit2.Text;

  // Pasar a Edits de Form2
  Form2.ECodGrupo.Text:= Edit3.Text;
  Form2.EDescGrupo.Text:= Edit4.Text;
end;
De ese modo transfiere los valores desde Form3 a Form1 y Form2 sin ningún tipo de error.

Cita:
Sospecho que me están evadiendo con la respuesta
Creo que estás confundido no sólo con el problema sino también con el juicio que emites, nadie ha tratado de evadir las respuestas, aquí cada uno aporta lo que su conocimiento y experiencia le indica y sin percibir un centavo por ello.

Cita:
considero que mi consulta ya ha sido lo suficientemente explicada
No, no es así. Recién en el anteúltimo mensaje nos enteramos el órden de creación.

Cita:
agradezco que me colaboren con el problema, pero si no saben como ayudar por favor no confundan más...
Lamento muchísimo si en nuestro afán de brindarte ayuda pudimos confundirte aún más.

Y para que no quede ninguna duda de nuestra buena voluntad, te adjunto el ejemplo para que puedas cotejarlo con tu código.

Saludos y no te olvides de leer nuestra guía de estilo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 17-11-2012 a las 19:19:31.
Responder Con Cita
  #14  
Antiguo 24-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
Ofrezco mil disculpas a todos...

Bueno, la verdad es que me siento mal por haber manifestado mi estado de ánimo de esa forma en que lo hice, de pronto me dejé llevar porque es que siento que me tiene atrancado esta situación y al no ver que me hago explicar bien, cuando pienso que lo he estado haciendo de pronto me dejé llevar, pero de verdad ofrezco mil disculpas y espero me las acepten...

Muchas gracias a todos los que me han dado su muy buena opinión, espero aplicar las sugerencias a ver como me va con eso y luego contaré como me fue...
Responder Con Cita
  #15  
Antiguo 24-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cualquiera tiene un mal día, ya verás que con las explicaciones que ha dado el compañero ecfisa consigues hacer funcionar correctamente tu programa.
Saludos.
Responder Con Cita
  #16  
Antiguo 24-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
Muchísimas gracias a todos en ClubDelphi, Asunto solucionado gracias a ustedes

A Todos los que me ayudaron muchísimas gracias a Casimiro Notevi, a ecfisa, a oscarac, a Roman, a todos me ayudaron a comprender bien como es que funciona esto de la creación de formularios en tiempo de ejecución correctamente, problema resuelto, a ver si me puedo explicar bien como funcionó todo:
1. Resulta que tengo una unidad externa donde utilizo un metodo para crear los formularios pasando como parámetro el formulario a crear. Este método lo aplicaba con nueva.create(application) y pues así lo llamaba cada vez que lo necesitaba y así me mandaba el error: Access Violation,
2. Gracias a sus consejos: utilizo ahora TFCatalogo.Create(self); en el llamado a los otros dos formularios y santo remedio: arreglado....
Bueno no he estudiado muy bien la diferencia entre el funcionamiento de la .Create con Self y con Application (estoy en eso)... pero con sólo eso se solucionó el problema, es increíble, y pensar que pasé todo el día dándole a esto y atascado con ello... pero de verdad muchas gracias a todos...

Ah y en serio mis más sentidas disculpas a todos de pronto si mi lenguaje no fue el adecuado, mis excusas... muchísimas gracias...
Responder Con Cita
  #17  
Antiguo 24-05-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 arnovisr.

Como bién dice Casimiro, aquí no ha pasado nada , lo importante es que solucionaste tu problema.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 24-05-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 arnovisr.

Si querés ampliar sobre como asignar el propietario en la creación: Application, self, nil, etc... te pongo unos pocos enlaces que creo que te van interesar:Encontrarás mucho mas material buscando aquí mismo en los foros.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 25-05-2012
Avatar de arnovisr
arnovisr arnovisr is offline
Registrado
 
Registrado: ago 2008
Posts: 9
Poder: 0
arnovisr Va por buen camino
Muchísimas gracias Ecfisa por este material, de verdad que me pondré inmediatamente a estudiarlos, me servirán muchísimo, mil gracias...
Responder Con Cita
Respuesta



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
Necesito ayuda por favor, no entiendo algo.... MaxiDucoli OOP 1 17-05-2010 04:09:36
Necesito ayuda para recuperar unos archivos ddd_ddd Varios 2 24-10-2007 15:49:26
Necesito unos componentes. lotos8ar OOP 2 21-09-2005 22:07:40
necesito ayuda por favor haffo Varios 3 09-10-2003 21:28:52


La franja horaria es GMT +2. Ahora son las 20:27:12.


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