Глюки rxDBGrid

Модераторы: alexs, Модераторы

Re: Глюки rxDBGrid

Сообщение YaroslavSh » 30.03.2021 00:07:16

Всем добрый день.
Возникла проблема при использовании Footer с базой на Firebird 2.5 в RxDBGrid при включенном fvtSum. Подключение через IBConnection. При отображении двух и более строк все нормально суммируется, но когда остается одна строка сразу вылетает ошибка. С базой на SQLlite3 суммировалось нормально.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Глюки rxDBGrid

Сообщение alexs » 30.03.2021 10:55:00

Пример можно?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение YaroslavSh » 30.03.2021 23:25:15

alexs писал(а):Пример можно?
Вложения
Primer.zip
(194.55 КБ) Скачиваний: 573
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Глюки rxDBGrid

Сообщение alexs » 31.03.2021 12:20:50

Не могу повторить
Проверял на 2.5 в винде, на 3.0 в линухе - всё норм.

Lazarus 2.1.0 r64894M FPC 3.3.1 i386-win32-win32/win64

Lazarus 2.1.0 r64894M FPC 3.3.1 x86_64-linux-gtk2
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение YaroslavSh » 31.03.2021 22:32:57

Странно.
Пользовался Lazarus 2.0.10 63526 FPC 3.2.0 - ошибка.
Поставил Lazarus 2.0.12 64642 FPC 3.2.0 - ошибка.
Затем поставил lazarus-2.1.0-62815-fpc-3.2.0rc1-44237-win32 та же ошибка.
Проверял на win10x64, win7x64.
Firebird-2.5.9.27139_0_Win32
Сборки, как у Вас не нашел.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Глюки rxDBGrid

Сообщение alexs » 01.04.2021 09:36:17

У меня текущее - из текущих исходников.
Но тут не должно это влиять.
Какая версия Rx? Текущая из SVN?
В каком именно месте вываливается ошибка - что показывает отладчик?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение YaroslavSh » 01.04.2021 21:11:18

Я rx ставил из сетевого диспетчера пакетов, думал, что он имеет всегда самую свежую версию компонента. Удалил сетевой, поставил lazarus-ccr-svn-r7986. И ошибка пропала. Спасибо большое Алексей.
YaroslavSh
новенький
 
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Re: Глюки rxDBGrid

Сообщение alexs » 02.04.2021 14:35:29

YaroslavSh писал(а):из сетевого диспетчера пакетов, думал, что он имеет всегда самую свежую версию компонента

Это не так - я там не управляю...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение zoltanleo » 04.02.2022 12:46:58

Леш, привет.

Если в гриде выставить опцию dgDisplayMemoryText в True, то у многострочного текста строки "склеиваются" без пробелов(разделителей) между ними (на скринах для сравнения верхний - в гриде, нижний - в оригинале).

Можно что-то подправить? Может свойство запилить, определяющее разделитель?
Вложения
Scr_238.png
Scr_238.png (995 байт) Просмотров: 17932
Scr_239.png
Scr_239.png (1.89 КБ) Просмотров: 17932
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: Глюки rxDBGrid

Сообщение alexs » 06.02.2022 20:17:03

Надо посмотреть конечно.
На мой взгляд - для отображения - любой не печатный символ просто заменять пробелом.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение zoltanleo » 06.02.2022 20:40:52

alexs писал(а):Надо посмотреть конечно.
На мой взгляд - для отображения - любой не печатный символ просто заменять пробелом.

Приложение кроссплатформенное, перевод строки в линуксе будет #13, на маке #10, на винде оба. Хлопотно будет делать это вручную в каждом гриде в OnGetText ;)

Наверное, лучше все таки в сорцах поковыряться
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: Глюки rxDBGrid

Сообщение alexs » 07.02.2022 00:29:20

Посмотри ревизию 8195.
В rx.inc добавил дерективу RDBGridDisplayMemoText_ClearSC. По умолчанию выключена.
При включении перед отображаением строки выполняется дополнительный проход
Код: Выделить всё
function TRxDBGrid.GetFieldDisplayText(AField: TField; ACollumn: TRxColumn
....
        {$IFDEF RDBGridDisplayMemoText_ClearSC}
        for i:=1 to Length(Result) do
          if Result[i] < ' ' then
            Result[i]:=' ';
        {$ENDIF}


Добавлено спустя 1 минуту 51 секунду:
Это что быстро смог придумать. Работает только на отображении.
По хорошему надо для RxDBGrid переопределять редктор MEMO полей - там сейчас штатный, на основе TEdit-а. А нужно что-то на основе TMemo.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Глюки rxDBGrid

Сообщение zoltanleo » 07.02.2022 00:39:44

Спасибо, гляну завтра
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: Глюки rxDBGrid

Сообщение zoltanleo » 08.02.2022 01:09:13

alexs писал(а):Посмотри ревизию 8195.

Леш, спасибо. Все здорово. При растяжении столбца пробелы вместо переносов, в хинте memo-форматирование сохраняется.

зы. только что обнаружил, что косяк-то я нашел в стандартном гриде, а не в твоем. Теперь, у тебя он пофикшен, а в стандартном - нет о_О
Вложения
Scr_243.png
Scr_243.png (3.63 КБ) Просмотров: 17837
Scr_242.png
Scr_242.png (3.6 КБ) Просмотров: 17837
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Пред.

Вернуться в RxLib

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru