Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Actualizar imagen al seleccionar tupla en DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=69978)

iktwo 22-09-2010 19:20:07

Actualizar imagen al seleccionar tupla en DBGrid
 
Hola, pues apenas comienzo con las BD en Delphi, he hecho un catálogo de productos, donde un campo es la imagen, que en realidad es un ruta, quisiera que al cambiar mi selección cambiará mi imagen en el TImage, no tengo problema con ese código en especifico, pero no he visto que el DBGrid tenga un metódo onSelect u onChange, tampoco un index para saber cual tupla tengo seleccionada, espero alguien me pueda guiar, gracias!

Caro 22-09-2010 19:31:46

Hola iktwo, debes utilizar los eventos de tu DataSet que esta relacionado con tu DBGrid, en este caso te puede servir el evento AfterScroll.

Saluditos

iktwo 22-09-2010 19:50:22

Muchas gracias por la pronta respuesta pero mi DataSource y DataSet lo tengo en un DataModule, no se como decirle que afterScroll cambie el TImage que está en otra forma..

Saludos!

Caro 22-09-2010 20:11:45

Cita:

Empezado por iktwo (Mensaje 377200)
.......... pero mi DataSource y DataSet lo tengo en un DataModule, no se como decirle que afterScroll cambie el TImage que está en otra forma..

Hola de nuevo, en uses de tu DataModule añade la unit donde esta tu DBGrid y para llamarlo haces esto.

Código Delphi [-]
  FormDBGrid.Image1.Picture.LoadFromFile.....

Saluditos

cloayza 22-09-2010 22:20:40

Aqui otra forma:

Código Delphi [-]
{En tu formulario donde esta la grilla creas este procedimiento...}
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
       {Su funcion es cargar al image1 la foto que corresponde...}
       Image1.Picture.LoadFromFile...
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
       {En este evento al Master.Table1.AfterScroll  le asignas el procedimiento que creaste...}
      master.Table1.AfterScroll:=Table1AfterScroll;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
       {Cuando cierres el formulario, dejas en NIL el evento Master.Table1.AfterScroll}
       master.Table1.AfterScroll:=NIL;
end;

El problema que veo con el metodo de Caral es que te obliga a tener creado el formulario en donde esta el grid en todo momento, para que cuando se mueva de registro no dispare una exception.

iktwo 23-09-2010 18:35:15

pues al final lo he solucionado con las ideas cloayza y de caro, muchas gracias!!


La franja horaria es GMT +2. Ahora son las 02:50:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi