Delphi - 2 dudas... DBGrid

 
Vista:

2 dudas... DBGrid

Publicado por Armando (16 intervenciones) el 09/08/2007 22:40:30
Hola... tengo una aplicacion donde despliego datos en un DBGrid, y tengo 2 dudas (no que sean errores pero son cosas que se me ocurrieron y no se como hacerlas).

1. necesito que los datos se vayan a Edits cuando cambie de celda... lo he intentado con eventos KeyDown y KeyPress y funciona pero como que siempre se queda un registro retrasado (no se si me explico).... No hay alguna forma de imitar el OnRowChanged en DBGrids????

2. Navegando en el mismo DBGrid, como puedo hacer para que al dar clic derecho en una celda me salga un pop up?? para poder dar una instruccion ahi... (como si fuera copiar o pegar).

Tal vez sea algo dificil lo que quiero hacer, pero si alguien sabe como se agradece.
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:2 dudas... DBGrid

Publicado por Delfino (1216 intervenciones) el 09/08/2007 22:53:23
Tienes q hacer en el evento AfterScroll del dataset asociado..

asigna un popup a la propiedad popupmenu del DBGrid..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 dudas... DBGrid

Publicado por Armando (16 intervenciones) el 09/08/2007 22:55:23
Respuestas cortas y claras jaja... muchas gracias, pero
en lo del pop up.. eso funcionaria para el DBGrid en general o para la celda que esta seleccionada??

esto ultimo es lo que quiero que funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 dudas... DBGrid

Publicado por Delfino (1216 intervenciones) el 09/08/2007 23:33:43
Para el DBGrid en general pero:

con una if puedes asociarlo a una columna, linea, celda etc. obteniendo las coordinadas del objeto al q quieres asociar desde el DBGrid mismo, ej:

if grid.SelectedIndex = 3 then
grid.PopupMenu = tpopup1
else
grid.PopupMenu = nil;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 dudas... DBGrid

Publicado por Armando (16 intervenciones) el 10/08/2007 17:35:10
gracias por tus respuestas... ya estan funcionando esos procedimientos, pero tengo un problema.

en el dbgrid, de acuerdo a una condicion voy cambiando el datasource para que me muestre datos de 2 tablas diferentes.
En una si me hace el scroll y en la otra no :S... no tengo idea de porque, le puse un showmessage() para saber cuando se efectua el scroll, y parece que al procedimiento de la segunda tabla nunca entra.. nunca me muestra el mensaje.

estan asi:

procedure TForm4.Table2AfterScroll(DataSet: TDataSet);
begin
Edit1.Text:= DS_grado.DataSet.FieldByName('Mat').AsString;
Edit2.Text := DS_grado.DataSet.FieldByName('Cve_habilitacion').AsString;
ComboBox1.Text := DS_grado.DataSet.FieldByName('Habilitacion').AsString;
MaskEdit1.Text := DS_grado.DataSet.FieldByName('Fecha_habilitacion').AsString;
Edit4.Text := DS_grado.DataSet.FieldByName('Programa').AsString;
Edit5.Text := DS_grado.DataSet.FieldByName('Ies').AsString;
Edit6.Text := DS_grado.DataSet.FieldByName('Pais').AsString;
ComboBox2.Text := DS_grado.DataSet.FieldByName('Pnp').AsString;
ComboBox3.Text := DS_grado.DataSet.FieldByName('Duracion').AsString;
showmessage('scroll tabla 2');
end;

procedure TForm4.Table1AfterScroll(DataSet: TDataSet);
begin
Edit1.Text := DS_Grado.DataSet.fieldByName('Matricula').AsString;
Edit3.Text := DS_Grado.DataSet.FieldByName('Nombre').AsString;
showmessage('scroll tabla1');
end;

pareciera que a este ultimo nunca entra, alguna idea porque??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 dudas... DBGrid

Publicado por Armando (16 intervenciones) el 10/08/2007 17:40:59
ya lo solucione, gracias de todos modos :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar