Ver Mensaje Individual
  #7  
Antiguo 18-05-2011
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Reputación: 14
Vales08 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Vales08.

Espero no entender mál lo que pedis...

El tema pasa por saber donde está ubicado el TDataSource al que están relacionados el TDBGrid y el TDBEdit, ya que si los conectas al mismo DataSource no es necesario pasarlo por que el dato ya estará allí.

Partamos suponiendo que tenemos un DataSet con un sólo campo: 'Nombre'.

Si usas un TDataModule donde residen el DataSet y el DataSource deberías tener:

En Form1 el DBEdit con las siguientes propiedades asignadas:

Código Delphi [-]
uses
Form3; // unidad del DataModule
...
DBEdit1.DataSource:= DataModule1.DataSource1;
DBEdit1.DataField:= 'Nombre';





Y en Form2 el DBGrid con las propiedades:

Código Delphi [-]
uses
Form3; // unidad del DataModule
...
DBGrid1.DataSource:= DataModule1.DataSource1;




(Esto se puede hacer más fácil desde el Object Inspector pero así me es más sencillo de explicar)

En cambio si el DataSource reside en Form1 sería:
Form1:

Código Delphi [-]
DBEdit1.DataSource:= DataSource1;
DBEdit1.DataField:= 'Nombre';





Y en Form2:

Código Delphi [-]
uses
Unit1; // donde supuestamente está Form1
....
DBGrid1.DataSource:= Form1.DataSource;





Por último si el DataSource reside en Form2, sería al revés.

En cualquiera de los casos al seleccionar una fila del DBGrid verías reflejada inmediatamente la selección en el DBEdit del otro form.

En definitiva la cuestión pasa por que los dos componentes (DBEdit y DBGrid) hagan referencia al mismo DataSet por medio del mismo DataSource.

Un saludo.

ecfisa muchas gracias, es eso lo que tenia que hacer...

yo tenia el dataset y el datasourse en un data module asiq aplique la primer opcion q me has dado....

muy clara y bien explicada tu respuesta...

un saludo.-
Responder Con Cita