Drag and Drop no ListBox

Nesse post vamos implementar uma forma de mudar a ordem dos itens de um listbox apenas arrastando com o mouse.

Para começar adicione um listbox ao formulário, e altere a propriedade DragMode para dmAutomatic.

Agora vamos a implementação do código:

Crie uma variavel na seção var do formulario
[delphi]var
StartingPoint: TPoint[/delphi]
Agora vamos aos eventos do listbox:

1) Evento onDragDrop
[delphi]var
DropPosition, StartPosition: Integer;
DropPoint: TPoint;
begin
DropPoint.X := X;
DropPoint.Y := Y;
with Source as TListBox do
begin
StartPosition := ItemAtPos(StartingPoint,True) ;
DropPosition := ItemAtPos(DropPoint,True) ;

Items.Move(StartPosition, DropPosition) ;
end;
[/delphi]
2) Evento onDragOver
[delphi]Accept := Source = ListBox1;[/delphi]
3) Evento onMouseDown
[delphi]StartingPoint.X := X;
StartingPoint.Y := Y;[/delphi]
Agora faça os testes, e pronto implementamos drag and drop no nosso ListBox.

Willian Rodrigues

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Newsletter willianrdg.com.br
Assine a newsletter e receba as atualizações do blog no seu e-mail.