Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Visualizar datos en un dbedit (https://www.clubdelphi.com/foros/showthread.php?t=12296)

dsa132132 12-07-2004 18:01:46

Visualizar datos en un dbedit
 
Hola gente;

Quisiera saber cómo visualizar en un dbedit un campo que se encuentra señalado en un grid de otro formulario. Ambos formularios comparten Data Module.

No se si de este modo iba bien encaminado pero ya no se por donde salir;

DBEdit1.text := OtroFormulario.DBGrid1.DataSource.DataSet... //me pierdo...

Agradezco vuestra ayuda.

Saludos!

delphi.com.ar 12-07-2004 18:05:40

Hay algo mas "automático", le asignas en la propiedad DataSource el mismo que que el DBGrid y en DataField el campo que quieres mostrar.

Saludos!

ruina 12-07-2004 20:05:58

si necesitas hacerlo en runtime...
(me imagino que lo que quieres es que a medida que el usuario toquetea el grid en el dbedit le salga la casilla que está activa).

imaginando que el dbedit esta en el Form2 (autocreación), y que el form1 tiene "uses Unit2"...

[delphi]
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
Form2.DBEdit1.DataSource:=dm.DataSource1;
if DBGrid1.SelectedField<>nil then
Form2.DBEdit1.DataField:= DBGrid1.SelectedField.FieldName
else Form2.DBEdit1.DataField:='';
end;
[delphi]

eso si, no te servirá para los blobs, o los memos, tendrias que poner un dbmemo

dsa132132 12-07-2004 21:44:14

Hola ruina,me has respondido exactamente a lo q quería, xo echale un vistazo a los errores q me da tu código;

[Error] GestionAbonados.pas(99): Undeclared identifier: 'DBGrid1ColEnter'
[Error] GestionAbonados.pas(99): ';' expected but '(' found
[Error] GestionAbonados.pas(101): Undeclared identifier: 'dm'

Si intento definir la función en el type de la unit1 ( en mi caso;GestionAbonados) tampoco lo acepta ( me dice q en vez de un "(" va un "=" ).

Podrias ayudarme?

Muchas gracias por vuestro interés!

marcoszorrilla 12-07-2004 21:59:56

Si entiendo bien lo que quieres, según te decía Delphicom.ar, la solución más simple sería la siguiente:

Haces dobleclic sobre el Ttable al que está conectado la rejilla, añades todos los campos si no lo habías hecho antes botón derecho del ratón añadir, ahora selecciones los que te intresen y los arrastras sobre ese formulario en el que quieras que se vean, auotmáticamente te mostrará lo que tengas seleccionado en la rejilla sin escribir ni una letra de código.


Un Saludo.

dsa132132 12-07-2004 23:17:15

Hola Marcoszorrilla.

He hecho lo que tu y Delphi.com.ar me habéis dicho pero en el DBEdit del otro formulario sólo me sale el primer registro de la tabla q quiero mostrar, independientemente de lo el DBGrid esté señalando. No cambia nunca.

En teoría debería cambiar conforme a lo apuntara el Grid, no?

Muchas gracias a todos!

dsa132132 12-07-2004 23:30:59

Ya lo tengo!

He hecho lo q te había dicho antes y he añadido esta linea de código al DBEdit;

procedure TFModificarAbonado.DBEdit1Change(Sender: TObject);
begin
DBEdit1.text := FGestionAbonados.DBGrid1.SelectedField.DisplayText;
end;

Ahora ya me funciona bien!

Gracias!!

ruina 13-07-2004 19:33:44

Cita:

Empezado por dsa132132
Hola ruina,me has respondido exactamente a lo q quería, xo echale un vistazo a los errores q me da tu código;

[Error] GestionAbonados.pas(99): Undeclared identifier: 'DBGrid1ColEnter'
[Error] GestionAbonados.pas(99): ';' expected but '(' found
[Error] GestionAbonados.pas(101): Undeclared identifier: 'dm'

Si intento definir la función en el type de la unit1 ( en mi caso;GestionAbonados) tampoco lo acepta ( me dice q en vez de un "(" va un "=" ).

Podrias ayudarme?

Muchas gracias por vuestro interés!

DBGrid1ColEnter en un evento del grid.
dm es como yo he llamado al datamodule, pero puedes sustituirlo por el form que contenga la tabla.

te sugiero no usar el Text de un dbedit, ya que, precisamente, la ventaja de los dbedits es que pintan siempre lo que tenga el campo.


La franja horaria es GMT +2. Ahora son las 02:03:04.

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