Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DBGrid. Como puedo mandar cada celda a un form distinto? (https://www.clubdelphi.com/foros/showthread.php?t=23375)

gontxalo 14-07-2005 22:33:42

DBGrid. Como puedo mandar cada celda a un form distinto?
 
Hola
Tengo un DBGrid, el cual tiene varias columnas y varias filas o celdas.
En el evento oncellclick mando la primera fila a un form, pero si
quiero pinchar en la segunda celda para que me mande a otro form como
se lo digo?

procedure TForm1.DBGrid6CellClick(Column: TColumn);
begin
Form11.Show
end;

Pero pinchando en la celda dos quiero que se abra el form 12.
Como lo hago?

Gracias

iuqrul 15-07-2005 08:32:04

Hola, dado que el evento te pasa el Column, puedes probar por indice:

procedure TForm1.DBGrid6CellClick(Column: TColumn);
begin
with Column do
case Index of
0: Form11.Show;
1: Form12.Show;
2: Form13.Show;
end;
end;

o por campo/nombre de campo:

procedure TForm1.DBGrid6CellClick(Column: TColumn);
begin
with Column do
if FieldName = 'Campo1' then
Form11.Show
else if FieldName = 'Campo2' then
Form12.Show;
else if Field = Grid.DataSource.DataSet.FieldByName('Campo3')
Form13.Show;
end;
end;

Un saludo.


gontxalo 15-07-2005 11:49:00

Hola
Así lo que me sale es que todas las celdas que tiene el título de la columna, es decir toda la columna la puedo enviar al mismo formulario.

Yo lo que quiero conseguir es que toda la celda horizontalmente, la pueda enviar a un form, pero la celda segunda horizontalmente hablando la pueda mandar a otro form distinto. Ejemplo:

Nombre Apellido Año
Angel martín 2000
María zabala 1999

Que al pinchar angel martín 2000 pueda abrir un form, pero que al pinchar maría zabala 1999 pueda abrir otro form distinto.

Lo que tu me dices abre un form angel maría y otro form martín zabala, por columnas.

Gracias

DarKraZY 15-07-2005 18:43:13

En ese caso deberás leer los valores de la fila seleccionada y actuar según te interese.

Los valores actuales los tienes en el DataSet que tenga puesto el DataSource del DBGrid.

ContraVeneno 15-07-2005 19:41:25

La propiedad RecNo del dataset la podrías tomar como número de fila del DBGrid.


La franja horaria es GMT +2. Ahora son las 19:40:34.

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