Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2010
Robin1 Robin1 is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
Robin1 Va por buen camino
Drag Drop TImage

Hola todos.

La cuestión que hoy se me plantea es la siguiente:

Utilizo un TImage como contenedor de otro TImage que creo de forma dinámica.

La idea, es que este nuevo TImage creado de forma dinamica pueda hacérsele Drag and Drop dentro del TImage que hace las veces de contenedor.

Todo me funciona, es decir, crear dinámicamente el TImage, que este se vea dentro del contenedor, y que incluso, cargue la imágen.

Pero a la hora de dar las pautas para que se pueda hacer drag and drop, no sé como manejar los eventos de un objeto que se crea en tiempo de ejecución.

Muestro el código de todo lo que hago...

//A partir de un Listbox, creo de forma dinámica el TImage, que a partir de aquí, se llamará "NewPedal"

Código:
procedure TForm1.LstModelDblClick(Sender: TObject);
var
  imgPath: string;
  NewPedal: TImage;

begin
  if LstModel.Selected [0] then
    imgPath := ExtractFilePath(ParamStr(0)) + 'Rec\Boss\Boss AC-3.jpg';
    NewPedal := TImage.Create(Self);
  with NewPedal do begin
    Parent := Self;
    SetBounds(30, 200, 800, 800);
    Picture.LoadFromFile(imgPath);
  end;
end;
Como el contenedor del nuevo TImage, es otro TImage, haciendo pruebas, vi viable asignar los siguientes eventos a este TImage (El contenedor)

Código:
procedure TForm1.ImgGroundDragDrop(Sender, Source: TObject; X, Y: Integer);
//El tema del DragDrop
begin
 if Source is TImage then
    begin
      TImage(Source).Left := X;
      TImage(Source).Top := Y;
    end;
end;



procedure TForm1.ImgGroundDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
//Más del DragDrop sobre el Imageground
  begin
Accept := (Source is TImage);
end;
Muy bien, ahora ha llegado el momento de asignar el evento Mouse Down, es decir, quiero que cuando se de Click Izquierdo al Mouse, presionando sobre el TImage creado dinámicamente, se pueda dentro del contenedor arrastrar y soltar a petción... Y aquií esta mi cuello de botella:

Que hice: Intenté hacerlo igual a como lo haría con un TIMge ya creado, pero por todos lados el compilador (Delphi 2010) me tira error. Hice esto, y no tira error, pero igual nada pasa:

Código:
procedure TForm1.NewPedalMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

var
 NewPedal: TImage;
begin
if Button = mbLeft then NewPedal.BeginDrag(True) ;
end;
Agradecería mucho si alguien me puede orientar.

Un gran saludo, y mil gracias,

Julián
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
Drag and Drop... dvlt .NET 0 07-02-2008 09:42:59
Drag & Drop DanForever Varios 2 01-06-2006 14:24:25
Drag&Drop !!! rafstyle OOP 6 27-07-2004 04:39:41
Drag&Drop xflo Lazarus, FreePascal, Kylix, etc. 0 13-10-2003 19:31:22
Drag & Drop cone220 Varios 1 26-05-2003 19:06:34


La franja horaria es GMT +2. Ahora son las 07:47:27.


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