Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.02.2009, 09:37
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию ListBox

как можно мышью передвинуть строки в ListBox?

я думаю надо копать где-то drag&drop но я об этом почти ничего не знаю...
Ответить с цитированием
  #2  
Старый 07.02.2009, 14:44
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

ну что народ? я думаю вы должны это знать
Ответить с цитированием
  #3  
Старый 07.02.2009, 14:59
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
По умолчанию

Код:
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);

begin

with (Sender as TListBox) do

   Items.Move(ItemIndex,ItemAtPos(Point(x,y),True));

end;

 

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

Accept := (Sender=Source);

end;
Не забудьте в ListBox присвоить свойству DragMode значение dmAutomatic.
Ответить с цитированием
  #4  
Старый 07.02.2009, 15:02
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
По умолчанию

Еще вариант
Код:
...

private

{ Private declarations }

GoingUp: Boolean;

 

procedure TForm1.ListBox1DragOver(Sender, Source: TObject;

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

begin

Accept := (Sender = Source) and

   (TListBox(Sender).ItemAtPos(Point(X, Y), False) >= 0);

{устанавливаем таймер для автопрокрутки}

if Accept then

   with Sender as TListBox do

     if Y > Height - ItemHeight then

     begin

       GoingUp := False;

       Timer1.Enabled := True;

     end

     else if Y > ItemHeight then

     begin

       GoingUp := True;

       Timer1.Enabled := True;

     end

     else

       Timer1.Enabled := False;

end;

 

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject;

X, Y: Integer);

var

NuPos: Integer;

begin

with Sender as TListBox do

begin

   NuPos := ItemAtPos(Point(X, Y), False);

   if NuPos >= Items.Count then

     Dec(NuPos);

   Label1.Caption := Format('Перемещено из %d в %d',

     [ItemIndex, NuPos]);

   Items.Move(ItemIndex, NuPos);

   {выделяем перемещенный элемент}

   ItemIndex := NuPos;

end;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

with ListBox1 do

   if GoingUp then

     if TopIndex > 0 then

       TopIndex := TopIndex - 1

     else

       Timer1.Enabled := False

   else if TopIndex < Items.Count - 1 then

     TopIndex := TopIndex + 1

   else

     Timer1.Enabled := False;

end;

 

procedure TForm1.ListBox1EndDrag(Sender, Target: TObject;

X, Y: Integer);

begin

Timer1.Enabled := False;

end;
Ответить с цитированием
  #5  
Старый 07.02.2009, 15:34
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

спасибо,работает...

для ListView так же?
Ответить с цитированием
  #6  
Старый 07.02.2009, 16:21
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Кжись по аналогии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter