Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с 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
?


Наверх

Титульная страница Поиск, карта сайта Написать письмо