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 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
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!
Responder Con Cita
  #2  
Antiguo 12-07-2004
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
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!
__________________
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 12-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
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!
Responder Con Cita
  #5  
Antiguo 12-07-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
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!
Responder Con Cita
  #7  
Antiguo 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
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!!
Responder Con Cita
  #8  
Antiguo 13-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
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.
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 20:44:52.


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