Hola a todos, he leido varios hilos de Drag & Drop y se ve algo complejo, he buscado en Gugle y he encontrado algo bastante sencillo.
Paso a contar, tengo una aplicacion que el usuario va a configurar a su necesidad ciertas imagenes en un panel contenedor colocandolas en la posicion que mejor le queden a su configuracion.
Para eso encontre este codigo que con una imagen anda de maravillas:
Código Delphi
[-]procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if Source is TImage then
begin
TImage(Source).Left := X;
TImage(Source).Top := Y;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TImage) ;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then Image1.BeginDrag(True) ;
end;
end.
Bien, pense, si esto funciona tambien podria funcionar esto: (le agregue un TPanel) y con el TPanel la imagen no funciona y el panel se mueve de maravillas !
Código Delphi
[-]procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if Source is TImage then
begin
TImage(Source).Left := X;
TImage(Source).Top := Y;
end;
if Source is TPanel then
begin
TPanel(Source).Left := X;
TPanel(Source).Top := Y;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TImage) ;
Accept := (Source is TPanel) ;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then Image1.BeginDrag(True) ;
end;
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then Panel1.BeginDrag(True) ;
end;
end.
Pues que no estoy viendo para poder mover el panel y la imagen en el mismo form o dentro de un mismo panel?
Es mas necesito mover como 8 imagenes y por lo menos 4 paneles pero por que no lo puedo hacer con varios componentes?
"Ya verifique el DragMode, con solo la imagen o solo el panel funciona ok, pero con estos dos componentes solo funciona el panel"
Alguna idea? Gracias de antemano y un abrazo.
Javier