|
#1
|
||||
|
||||
FileListBox
Здравствуйте. Требуется ваша помощь. Уже второй день не могу сообразить.
Имеется код для перемещения строк по 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
|
|||
|
|||
Цитата:
Курс биткоина к доллару http://vesti42.ru/reklama/kurs-bitco...d-na-segodnya/ это основа на крипто бирже. Мне помогла эта статья найти сервис для отслеживания курса биткоина к доллару. |