Страница 24 из 26
Re: Глюки rxDBGrid
Добавлено: 29.05.2019 08:13:51
alexs
dedrasta писал(а):Для просмотра файла использую MS Excel
А что там в качестве формулы ставиться? Я в LO тестирую. Там нормально.
Re: Глюки rxDBGrid
Добавлено: 31.05.2019 11:24:28
dedrasta
alexs писал(а):dedrasta писал(а):Для просмотра файла использую MS Excel
А что там в качестве формулы ставиться? Я в LO тестирую. Там нормально.
Если помечен чекбокс "Export footer formula", то пусто. Если сброшен - то соответствующее число.
Видимо, Excel не воспринимает формулы из файла .ods
Re: Глюки rxDBGrid
Добавлено: 31.05.2019 14:10:38
alexs
Проверил Excel 2003 файл xls - формула есть
dedrasta писал(а):Видимо, Excel не воспринимает формулы из файла .ods
А почему не родной ексельный формат?
Re: Глюки rxDBGrid
Добавлено: 02.07.2019 23:18:36
YaroslavSh
Добрый день. Подскажите, пожалуйста, два момента по RxDBGrid.
1) При прокрутке скрола в компоненте справа на лево, если не очень быстро, выделенная строка становится с черточками.
2) Замороженные колонки выделяются, как заголовок колонок и пропадает в этих колонках footer строка, пропадает заголовок и возможность изменить ширину колонки,
нельзя ли как в delphi 7, замороженную колонку отделить тоненькой чертой?
Re: Глюки rxDBGrid
Добавлено: 03.07.2019 08:13:44
alexs
1. Можно пример?
2 и 3 - нормального функционала с фиксированными колонками ещё нет. Если ожидать функционал в стиле EhLib - надо дописывать.
Re: Глюки rxDBGrid
Добавлено: 03.07.2019 22:07:50
YaroslavSh
alexs писал(а):1. Можно пример?
Если плавно с право на лево перевести скролл.
sqlite3.dll - не крепится слишком большой.
Re: Глюки rxDBGrid
Добавлено: 04.07.2019 09:11:59
alexs
Проблема наблюдается при хитрых условиях:
в опциях включены dgThumbTracking и dgRowSelect - как временное решение можно просто пока выключить эти флаги.
Проблема находится в штатном DBGrid и даже в StringGrid (хотя тут не так ярко выражена).
Напиши в багтрекер лазаря. Что-то там с событиями прорисовки и скролинга напутали.
Re: Глюки rxDBGrid
Добавлено: 13.06.2020 00:46:28
YaroslavSh
alexs писал(а):Проблема наблюдается при хитрых условиях:
в опциях включены dgThumbTracking и dgRowSelect - как временное решение можно просто пока выключить эти флаги.
Проблема находится в штатном DBGrid и даже в StringGrid (хотя тут не так ярко выражена).
Напиши в багтрекер лазаря. Что-то там с событиями прорисовки и скролинга напутали.
Написал в багтрекер, прошел год, ни чего не изменилось, НО случайным образом понял, что при включении свойства flat, глюк с прорисовкой исчезает.
Re: Глюки rxDBGrid
Добавлено: 20.08.2020 14:33:47
V@S
Добрый день.
Делаю свою отрисовку в гриде, по факту нужно по-своему отрисовать один столбец.
Если отрисовку одного столбца делать у грида в событии OnDrawColumnCell, то на остальных при использовании DefaultDrawColumnCell почему-то пропадает реакция на свойство Aligment колонки, все рисуется с центровкой по левому краю.
Если использовать событие колонки OnDrawCollumnCell, то DataCol передается на 1 больше, чем положено.
Код: Выделить всё
procedure TForm.DBGrRxDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
Memo1.Lines.Add('1. DBGrRxDrawColumnCell -> ' +
'Datacol: ' + IntToStr(DataCol) +
' Column.FieldName: ' + Column.FieldName +
' Column.Index: ' + IntToStr(Column.Index));
В Memo1 имеем
1. DBGrRxDrawColumnCell -> Datacol: 2 Column.FieldName: fullname Column.Index: 2
Код: Выделить всё
procedure TNomenclatureForm.DBGrRxColumns1DrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
Memo1.Lines.Add('2. DBGrRxColumns1DrawColumnCell -> ' +
'Datacol: ' + IntToStr(DataCol) +
' Column.FieldName: ' + Column.FieldName +
' Column.Index: ' + IntToStr(Column.Index));
2. DBGrRxColumns1DrawColumnCell -> Datacol: 3 Column.FieldName: fullname Column.Index: 2
Глюк или так и должно быть. Отрисовка при использовании события колонки естественно происходит неправильно, если тип следующего столбца выставлен как CheckBox, то вместо текста в этой колонке рисуются чекбоксы

P.S. При отключенной опции dgIndicator все работает нормально.
Re: Глюки rxDBGrid
Добавлено: 20.08.2020 14:51:35
alexs
1. Проверю
2. Так и должно быть. Индикатор на самом деле - это первая колонка. И это штное поведение - стандартные гриды так же себя поведут. Просто необходимо это учитывать.
Re: Глюки rxDBGrid
Добавлено: 20.08.2020 15:10:05
V@S
Странно. На стандартных не проверял, но не логично.
Тот же индикатор должен тогда учитываться и при вызове события OnDrawColumnCell для всего грида, а не учитывается видимо.
Re: Глюки rxDBGrid
Добавлено: 20.08.2020 15:19:10
alexs
V@S писал(а):Делаю свою отрисовку в гриде, по факту нужно по-своему отрисовать один столбец.
Можно пример?
Повторить не могу - нормально выравнивание срабатывает.
Добавлено спустя 6 минут 46 секунд:V@S писал(а):Тот же индикатор должен тогда учитываться и при вызове события OnDrawColumnCell для всего грида, а не учитывается видимо.
Вот вызов для отрисовки
Код: Выделить всё
if Assigned(OnDrawColumnCell) and not (CsDesigning in ComponentState) then
begin
DataCol := ColumnIndexFromGridColumn(aCol);
if not Assigned(C) then
C:=TRxColumn(ColumnFromGridColumn(aCol));
OnDrawColumnCell(Self, aRect, DataCol, C, aState)
end
Номер колонки - стандартная функция ColumnIndexFromGridColumn.
Re: Глюки rxDBGrid
Добавлено: 20.08.2020 17:28:25
V@S
alexs писал(а):Можно пример?
Повторить не могу - нормально выравнивание срабатывает.
О блин, создал пустой проект для примера. А в нем тоже не воспроизводится. Буду копать основной проект
alexs писал(а):Номер колонки - стандартная функция ColumnIndexFromGridColumn.
Я по исходникам смотрел и не понял. Вроде как стандартная, но Datacol разный получается при прорисовке колонок из события OnDrawColumnCell грида и непосредственно колонки.
Даже вот такой костыль прописал в коде для колонки:
Код: Выделить всё
aCol := DataCol;
if (dgIndicator in TRxDBGrid(Sender).Options) then
dec(aCol);
TRxDBGrid(Sender).DefaultDrawColumnCell(Rect, aCol, Column, State);
Добавлено спустя 33 минуты 15 секунд:V@S писал(а):О блин, создал пустой проект для примера. А в нем тоже не воспроизводится. Буду копать основной проект
Нашел. Пропустил, что в проекте ставил свойство DefaultDrawing в false.
Re: Глюки rxDBGrid
Добавлено: 21.08.2020 08:12:46
alexs
V@S писал(а):Даже вот такой костыль прописал в коде для колонки:
Это не костыль - это правильный код.
Индикатор в потрохах грида - это тоже колонка.
Re: Глюки rxDBGrid
Добавлено: 21.08.2020 09:07:15
V@S
alexs писал(а):Индикатор в потрохах грида - это тоже колонка.
Почему тогда индикатор не учитывается при вызове прорисовки из события OnDrawColumnCell для грида?
Я же верху привел лог, что если использовать событие OnDrawColumnCell грида, то DataCol передается = 2 для нужной колонки, а если использовать OnDrawColumnCell колонки, то DataCol в нее передается на 1 больше. На скрине видна неправильная отрисовка, особенно если следующая колонка cbsCheckboxColumn
Может только у меня такое поведение таблицы
