![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TListBox [D7]
Andrick © (2004-12-25 17:34:00)Есть компонент типа TListBox. Необходимо снабдить его drag-n-drop для строчек, причем я должен отслеживать, какая строчка на какое место опустилась. Желательно сделать все средствами Delphi, не используя WinAPI (если это вообще возможно). Желательно с примером или ссылкой на исходник
Andrick (2004-12-26 06:45:00) [1]
> Leonid Troyanovsky © (25.12.04 18:37) [2]
Спасибо, сегодня же опробую
Leonid Troyanovsky (2004-12-25 18:37:00) [2]
> Andrick © (25.12.04 17:34)
> Есть компонент типа TListBox. Необходимо снабдить его drag-n-drop
> для строчек, причем я должен отслеживать, какая строчка
> на какое место опустилась. Желательно сделать все средствами
> Delphi, не используя WinAPI (если это вообще возможно).
> Желательно с примером или ссылкой на исходник
DragMode := dmAutomatic;
{OnDragOver}
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := True;
end;
{OnDragDrop}
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
NewIndex : Integer;
begin
with Sender as TListBox do
begin
NewIndex := ItemAtPos(Point(X,Y), True);
Items.Move(ItemIndex, NewIndex);
ItemIndex:= NewIndex;
end;
end;
--
Regards, LVT
default (2004-12-25 17:46:00) [3]если есть строки
a
b
c
d
e
и мы перетаскиваем третью строку на место второй то должно получиться:
a
c
b
d
e
?