![]() |
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! |
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! |
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 |
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! |
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. |
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! |
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!! |
Cita:
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 21:41:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi