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

var
  StartingPoint: TPoint

Agora vamos aos eventos do listbox:

1) Evento onDragDrop

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;

2) Evento onDragOver

Accept := Source = ListBox1;

3) Evento onMouseDown

StartingPoint.X := X;
StartingPoint.Y := Y;

Agora faça os testes, e pronto implementamos drag and drop no nosso ListBox.

Willian Rodrigues

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0Print this pageEmail this to someone

Deixe uma resposta

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

Blog Willian Rodrigues

Receba as atualizações do blog no seu e-mail