{Um método bem simples de implementar uma ordenação de um ListBox através de Drag-Drop, utilizando apenas os eventos oferecidos pelo próprio componente TListBox
Primeiro, certifique-se que a propriedade DragMode seja dmAutomatic.
No evento OnDragOver só devemos aceitar um item arrastado do próprio ListBox, ou seja, se o parâmetro Sender for igual ao Source. }
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Sender = Source);
end;
{Já no evento OnDragDrop, utilizamos o método ItemAtPos para descobrir qual item está sob o cursor do mouse, e alteramos a ordem com o método Move. }
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
i: Integer;
begin
with TListBox(Sender) do
begin
if ItemIndex > -1 then
begin
i := ItemAtPos(Point(x,y),True);
Items.Move(ItemIndex, i);
ItemIndex := i;
end;
end;
end;
{By
Nativo_Gyn
ufgnet@pop.com.br}
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário