Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 02-03-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola gianfranco_tont,

En mi opinión, el ejemplo que te esbozó ecfisa desde un principio es el camino a seguir. Tú quieres mostrar una banda de imágenes (y otra información) que provienen de una base de datos, por lo que la opción de usar un DBCtrlGrid es la más adecuada, ya que dicho control te facilita todo el desplazamiento y presentación de los datos.

Un pequeño inconveniente es que las imágenes las guardas en archivos fuera de la base de datos, por lo que no te vale colocar un DBImage. Pero no es un gran inconveniente. Coloca en su lugar un Image normal en el panel del DBCtrlGrid y en el evento OnPaintPanel del DBCtrlGrid cargas la imagen que corresponda:

Código Delphi [-]
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer);
begin
  Image1.Picture.LoadFromFile(DBCtrlGrid.DataSource.DataSet['ruta']);
end;

Para arrastrar la imagen únicamente tienes que usar los eventos OnDragOver y OnDragDrop del DBGrid:

DragOver:
Código Delphi [-]
Accept := Source is TImage;

DragDrop:
Código Delphi [-]
Valor := DBCtrlGrid1.DataSource.DataSet.FieldByName('...').AsString;

Es decir, usas el valor del campo del dataset como requieras.

Para iniciar el arrastre, ecfisa usó el evento OnMouseDown del (DB)Image, pero tiene un problema, y es que debes seleccionar primero el panel deseado y luego hacer el arrastre. Es decir, si intentas arrastrar directamente un panel que no está seleccionado no se puede, o al menos es lo que he observado.

Para remediar esto basta que uses el evento OnMouseDown del DBCtrlGrid y ahí hagas lo mismo:

Código Delphi [-]
Image1.BeginDrag(true);

// Saludos
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Arrastrar y Soltar Panasys OOP 7 11-08-2011 00:03:26
Arrastrar de objetos Cheswar Gráficos 1 30-09-2007 23:03:45
arrastrar y muliseleccion palets Gráficos 2 06-06-2006 23:35:31
Arrastrar Registro vtdeleon SQL 8 13-08-2005 00:51:17
Arrastrar y Soltar!!! chechu Varios 6 21-10-2004 20:26:35


La franja horaria es GMT +2. Ahora son las 11:02:20.


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
Copyright 1996-2007 Club Delphi