Содержание материала

 

Изменение позиций элементов ListBox с помощью Drag and Drop

 

Автор: Peter Donnelly

 

Вот еще одна вариация сабжа.

Code:

procedure TPickParty.PickListBMouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if Button = mbLeft then

   with Sender as TListBox do

   begin

     DraggedPM := ItemAtPos(Point(X, Y), True);

     if DraggedPM > l;

     = 0 then

       BeginDrag(False);

   end;

end;

 

procedure TPickParty.PickListBDragOver(Sender, Source: TObject; X,

Y: Integer; State: TDragState; var Accept: Boolean);

begin

if Source = PickListB then

   Accept := True;

end;

 

procedure TPickParty.PickListBDragDrop(Sender, Source: TObject; X, Y: Integer);

var

NewIndex: integer;

begin

NewIndex := PickListB.ItemAtPos(Point(X, Y), False);

if NewIndex > PickListB.Items.Count - 1 then

   NewIndex := PickListB.Items.Count - 1;

PickListB.Items.Move(DraggedPM, NewIndex);

PickListB.ItemIndex := NewIndex;

end;

 

 

https://delphiworld.narod.ru/

DelphiWorld 6.0

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить