Hay que preparar ambos objetos, el TFileListBox para que permita arrastrar sus ítems y a TListBox para que acepte lo que le llega de TFileListBox.
En un Form crear ambos componentes y dejarles su nombre por default (TFileListBox1 y ListBox1).
Desde el inspector de objetos seleccionamos FileListBox1 y establecemos dmAutomatic en la propiedad DragMode. Con esto solo conseguimos que los elementos contenidos en esa lista se puedan arrastrar. Y con este elemento no es necesario hacer más nada.
Ahora seleccionamos también desde el inspector de objetos ListBox1, en Eventos, definimos OnDragDrop y OnDragOver. (definimos = hacer click en el botón con los ‘…’).
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if (Source is TFileListBox) then ListBox1.AddItem(FileListBox1.items[FileListBox1.ItemIndex],ListBox1);
end;
ListBox1 agregará ítems que provengan de objetos del tipo TFileListBox.
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=(Source is TFileListBox);
end;
ListBox1 aceptará que objetos del tipo TFileListBox le suelten ítems.
Arrastrar y soltar entre listas - Lazarus from https://lazarus-freepascal.blogspot.com on Vimeo.
No hay comentarios:
Publicar un comentario