Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
Talking problema traspaso de datos entre formularios hijos

Hola, ¿que tal el día? espero se os esté dando mejor que a mi.

Vereis, estoy realizando una práctica sobre la gestión de un hotel, de momento la gestión de clientes, para lo cual utilizo una aplicación MDI.
Tengo 3 formularios: 1 Formulario principal (Form1), 1 formulario hijo (Form2) y otro formulario dependiente del anterior, es decir, dependiente del hijo, este último llamado( Form2_1).

En el formulario 2 creo el formulario 2_1 en un boton, de la siguiente form:
Código Delphi [-]
 form:=TForm.create(Application);
 form.show;
y en el uses del form2_1 tengo puesto la Unit2 tal y como he leido en el foro.

El Form2_1 tiene un DBGrid que cuando ejecuto el evento OnClick su misión es transpasar los datos del Grid a los edit del Form2.

He estado investigando en el foro y en el histórico, pero la verdad no lo tengo nada claro.

Segui los pasos de un amigo forero que decía en uno de los hilos q leí,que pasase los datos a variables globales en el form2_1 y que accediese a ellas en el form2 y me paso algo raro, puse los datos en las variables globales, pero se me olvido acceder a ellas en el form2 y funcionó, me pasó los datos. Lo cual no entiendo.

Bueno despues de este parrafo y de la chapa que os he metido, voy al grano.

-¿Si alguien me puede explicar de forma clara como hacerlo?¿Y que pasaría si el formulario que tiene que recibir los datos está cerrado?

-Otra cosina más, ¿dónde puedo encontrar un manual ó imformación extensa sobre los MDI en Delphi.

Yo he estudiado los MDI en Visual Basic 6, y la verdad me parecieron algo más sencillos, pero he elegido Delphi para hacer mis practicas.

Bueno ya me despido, siento haberme alargado tanto, igual he preguntado demasiado, pero es que me interesa profundizar en este tema

Última edición por VRO fecha: 29-03-2005 a las 18:55:34.
Responder Con Cita
  #2  
Antiguo 29-03-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por VRO
Segui los pasos de un amigo forero que decía en uno de los hilos q leí,que pasase los datos a variables globales en el form2_1 y que accediese a ellas en el form2 y me paso algo raro, puse los datos en las variables globales, pero se me olvido acceder a ellas en el form2 y funcionó, me pasó los datos. Lo cual no entiendo.
Mmmmm... nos podrías mostrar el código fuente??

Cita:
Empezado por VRO
-¿Si alguien me puede explicar de forma clara como hacerlo?¿Y que pasaría si el formulario que tiene que recibir los datos está cerrado?
Olvídate de lo que has visto en VB, a mi parecer es orroroso el trato de los formularios en ese lenguaje, Delphi es algo mas prolijo para tratarlos.
Simplemente cuando creas y modificas un formulario visualmente, lo que estas haciendo es "moldeando" una clase. Los formularios son clases y son tratados como cualquier clase, necesitan crearse para ser usados, tienen propiedades, métodos y eventos, y pueden ser heredados.
Si tu quieres que un formulario acepte algun tipo de datos, simplemente puedes crear una propiedad en este, o definir métodos para asignar propiedades, o variables públicas, o bien puedes acceder a los objetos que has pegado visualmente sobre este. Lo que es importante es poder acceder al formulario, si este lo asignas a una variable global, tienes que tener en cuenta que no puedes tener mas de una instancia de una clase asignada a una única variable.
¿Qué es lo que necesitas comunicar a tu formulario?

Cita:
Empezado por VRO
-Otra cosina más, ¿dónde puedo encontrar un manual ó imformación extensa sobre los MDI en Delphi.
En la ayuda de Delphi, es mas que completa!


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 29-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Wink

Saludos,

Chequeate este hilo:
http://www.clubdelphi.com/foros/show...8484#post78484

Creo que te pueden ayudar. Esta de dos formas, con Form normales y tambien MDIChild.

Hasta luego y suerte.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 29-03-2005 a las 22:15:54.
Responder Con Cita
  #4  
Antiguo 30-03-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
codigo de transferencia

Os paso el codigo que me pediste delphi.com.ar, sobre la pregunta que he hecho de declarar las variables globales y pulsar en el grid y que me pase los datos al formulario que le llama.

Os explico más detalladamente lo que pretendo conseguir, el Form2 es un formulario de gestión de clientes, uno de los botones es el de busqueda, que es el que yo pulso y en el creao el Form2_1 de la siguiente forma:

//En el Form2 botón de busqueda
Código Delphi [-]

 procedure TForm2.buscarcliClick(Sender: TObject);
var
  cliente: TForm2_1;
begin

  cliente:=TFoorm2_1.Create(Application);
  cliente.Show;
end;

En el Form2_1 tengo una DBGrid que contiene los datos del todos los clientes dados de alta hasta el momento, cuando pincho en el grid sobre uno de ellos sus datos expuestos en el grid deben pasar a los TDBEdit del Form2 y así se realiza la busqueda de un cliente para observar sus datos. Para ello utilizo el siguiente codigo:

//Declaro las variable globales en el public del Form2_1
Código Delphi [-]

cod,tipo,nif,nom,dir,pobla,cp,pro,p,fn,tlf,movil,s:String;

//En el evento OnClik del DBGrid hago lo siguiente:
Código Delphi [-]

procedure TForm2_1.DBGridCellClick(Column: TColumn);
begin
cod:=cli.Fields[0].Text;
  tipo:=cli.Fields[1].Text;
  nif:=cli.Fields[2].Text;
  nom:=cli.Fields[3].text;
  dir:=cli.Fields[4].Text;
  pobla:=cli.Fields[5].Text;
  cp:=cli.Fields[6].Text;
  pro:=cli.Fields[7].Text;
  p:=cli.Fields[8].Text;
  fn:=cli.Fields[9].Text;
  s:=cli.Fields[10].Text;

  tlf:=cli.Fields[11].Text;
  movil:=cli.Fields[12].Text;

  //Salgo del Form2_1
  free;
end;

yo pienso que lo normal sería que ahora despues de cerrar el Form2_1, en el Form2 igualasemos los TDBEdit al valor de las variables globales, pero sín hacer esto último sale y no se porque?

Y esa es la razón por la que quiero pasar los datos del DBGrid a los TDBEdit del Form2.

Gracias a ambos, probaré también tu forma vtdeleon.
Responder Con Cita
  #5  
Antiguo 30-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
"Si ya sale, sin igualar los datos", significa que el DBGrid de búsqueda está enlazado al mismo dataset (tabla o consulta) que el form donde quieres poner los datos, así, al hacer un clic en el Grid de búsqueda, el apuntador de la tabla Clientes se mueve al que has hecho clic, y por tanto, el Form que tienes los DBedits (que tambien está apuntando a la tabla Clientes), se actualiza y te muestra el cliente.

Solución: No necesitas variables globales. Lo único que necesitas es que el usuario haga clic en la ventana de búsqueda.

Un saludo
Responder Con Cita
  #6  
Antiguo 30-03-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
Unhappy

Jo!!!, mil gracias.

No puedo ser tan tonta, de no darme cuenta de esto.

Mil gracias.
Responder Con Cita
  #7  
Antiguo 30-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
A todos nos pasa.... El bosque no te deja ver el arbol

Un saludo
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


La franja horaria es GMT +2. Ahora son las 17:33:47.


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