![]() |
|
|
#1
|
||||
|
||||
|
Здравствуйте. Требуется ваша помощь. Уже второй день не могу сообразить.
Имеется код для перемещения строк по FileListBox вверх/вниз. Как сделать чтобы при перемещении строки , перемещаемая строка оставалась выделенной? Код работает как положено, но как-то нелогично получается когда выделил строку нажал кнопку "вверх" и выделение пропало. Хочется добиться аккуратного эффекта. Код:
{выделяем и перемещаем вверх}
procedure TForm9.act_UpExecute(Sender: TObject);
begin
if FileListBox1.ItemIndex < 0 then exit;
if FileListBox1.ItemIndex = 0 then
begin
FileListBox1.Items.Move(0, Pred(FileListBox1.Items.Count));
FileListBox1.ItemIndex := Pred(FileListBox1.Items.Count)
end
else
FileListBox1.Items.Exchange(FileListBox1.ItemIndex, Pred(FileListBox1.ItemIndex));
end;
{выделяем и перемещаем вниз}
procedure TForm9.act_DownExecute(Sender: TObject);
begin
if FileListBox1.ItemIndex < 0 then exit;
if FileListBox1.ItemIndex = Pred(FileListBox1.Items.Count) then
begin
FileListBox1.Items.Move(Pred(FileListBox1.Items.Count), 0);
FileListBox1.ItemIndex := 0
end
else
FileListBox1.Items.Exchange(FileListBox1.ItemIndex, Succ(FileListBox1.ItemIndex));
end;Последний раз редактировалось Cave, 17.11.2021 в 16:02. |
|
#2
|
||||
|
||||
|
Пропадание выделения строки наблюдается если у FileListBox включено свойство MultiSelect. В противном случае всё работает как надо. Если MultiSelect не требуется, то отключите его.
|
| Этот пользователь сказал Спасибо Kailon за это полезное сообщение: | ||
Cave (18.11.2021)
| ||
|
#3
|
||||
|
||||
|
Цитата:
Код:
procedure TForm9.act_DownUpdate(Sender: TObject); begin TAction(Sender).Enabled:= FileListBox1.SelCount > 0; end; |
|
#4
|
||||
|
||||
|
А зачем тогда Вам нужен был MultiSelect если в итоге перемещается только одна строка, вне зависимости от того сколько их выбрано. И что за проверки на выделение пунктов?
|
|
#5
|
||||
|
||||
|
Цитата:
Код:
begin
if FileListBox1.itemindex > -1 then TAction(Sender).Enabled:= true else
TAction(Sender).Enabled:= false;
end; |
|
#6
|
||||
|
||||
|
Цитата:
![]() |
|
#7
|
|||
|
|||
|
Цитата:
![]() |