"EhLib.Com"
https://forum.ehlib.com/ru/

Не работает выделение нескольких строк
https://forum.ehlib.com/ru/viewtopic.php?f=4&t=2774
Страница 1 из 1

Автор:  Vlad__1 [ 10 май 2019, 11:25 ]
Заголовок сообщения:  Не работает выделение нескольких строк

Ни мышью, ни используя шифт, не получается выделить несколько строк, если датасет отсортирован не по первой колонке
Объяснить проще на примере
В гриде 10 строк
Выделяем первую строку
Зажимаем шифт
Выбираем последнюю строку
По идее должны выделиться все 10 строк
По факту, выделяются 5-6 случайных строк, каждый раз разных, а 4-5 остаются не выделенными

Автор:  EhLibSupport [ 10 май 2019, 20:59 ]
Заголовок сообщения:  Re: Не работает выделение нескольких строк

Добрый день.

Пришлите, пожалуйста, название DataSet'а который вы используете.
Возможно ли прислать Demo проект, демонстрирующий ошибку?

Автор:  Vlad__1 [ 13 май 2019, 13:40 ]
Заголовок сообщения:  Re: Не работает выделение нескольких строк

Добрый
Датасет - TRxMemoryData
Демо проект
https://fex.net/s/ss3cdma

Button1 - добавляет 3 записи в датасет, выделение работает
Button2 - сортирует по второй колонке, выделение работать перестает

Автор:  EhLibSupport [ 14 май 2019, 14:33 ]
Заголовок сообщения:  Re: Не работает выделение нескольких строк

Добрый день.

Проверьте, пожалуйста, что ваш DataSet полностью поддерживает работу с букмарками.

Cледующий код
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  bm1, bm2: TBookmark;
  res: Integer;
begin
  MTH1.RecNo := 1;
  bm1 := MTH1.Bookmark;

  MTH1.RecNo := 2;
  bm2 := MTH1.Bookmark;

  res := MTH1.CompareBookmarks(bm1, bm2);

  DBEditEh1.Text := 'MTH1.CompareBookmarks(bm1, bm2) = ' + res.ToString;
end;
должен возращать значение < 0 в переменную res.

Если при сортировке это не работает, то использовать DBGridEh для выделения записей в вашем DataSet'е к сожалению, не получиться.

Автор:  Vlad__1 [ 15 май 2019, 08:03 ]
Заголовок сообщения:  Re: Не работает выделение нескольких строк

Добрый день
Ну, датасет не мой, но зато с исходниками :)
Вы правы, после сортировки, CompareBookmarks возвращал +1
Переписал CompareBookmarks у датасета, выделение заработало корректно
Спасибо за помощь

Страница 1 из 1 Часовой пояс: UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/