Глюки rxDBGrid
Модераторы: alexs, Модераторы
о, а у меня всё руки не доходили собрать примерчик
не я один пострадал 
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
vicvala писал(а):alexs посмотрите >>> на досуге! Count работает, Sum нет. Раньше работало. Если одна таблица, то суммирует нормально, если связь мастер-детали нет.
Теперь понял. Победил.
Надо тестировать.
ronin писал(а):о, а у меня всё руки не доходили собрать примерчикне я один пострадал
А вот и зря
С готовым примером было проще.
Сегодня залью в SVN исправление.
alexs Отлично! Я уже грешным делом начал думать, что виноват не rxDBGrid! Обязательно по тестирую!!!
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
vicvala
На самом деле там сложная ситуация была.
DataSet не отсылает сообщение о том, что он был переоткрыт в то врем когда ему сделали DisableControls/EnableControls.
Пришлось искать обходной путь.
Добавлено спустя 1 час 57 минут 52 секунды:
Всё. Можно проверять.
Желательно хорошо потестить.
Вдруг где вылезет глюк.
Один артефактуже заметил.
Если список большой (больше чем сам грид) то при скролинге когда курсор первый раз достигает края грида - сисок передёргивате и курсор становится посередине грида. Далее скролинг идёт нормально. Ещё не победил - надо смотреть. Тут странное поведение самого DBGrid-а - зачем то лишний раз вызывает метод изменения состояния DataSet-а.
На самом деле там сложная ситуация была.
DataSet не отсылает сообщение о том, что он был переоткрыт в то врем когда ему сделали DisableControls/EnableControls.
Пришлось искать обходной путь.
Добавлено спустя 1 час 57 минут 52 секунды:
Всё. Можно проверять.
Желательно хорошо потестить.
Вдруг где вылезет глюк.
Один артефактуже заметил.
Если список большой (больше чем сам грид) то при скролинге когда курсор первый раз достигает края грида - сисок передёргивате и курсор становится посередине грида. Далее скролинг идёт нормально. Ещё не победил - надо смотреть. Тут странное поведение самого DBGrid-а - зачем то лишний раз вызывает метод изменения состояния DataSet-а.
alexs Спасибо! Работает. Был ещё там мелкий косяк отображения, пропал, видимо заодно и его поправил!!! Дальше, работу grid'a покажет время.
Добавлено спустя 2 минуты 36 секунд:
У меня 2 раза курсор становится на середину, дальше нормально.
Скролы ещё работают не верно. Стоит auto. Если 1 запись, то V.скрола нет, если больше одной записи (хотя есть место показать записи в гриде без скрола) - появляется V.скрол.
Добавлено спустя 2 минуты 36 секунд:
когда курсор первый раз достигает края грида - список передёргиваете и курсор становится посередине
У меня 2 раза курсор становится на середину, дальше нормально.
Скролы ещё работают не верно. Стоит auto. Если 1 запись, то V.скрола нет, если больше одной записи (хотя есть место показать записи в гриде без скрола) - появляется V.скрол.
Последний раз редактировалось vicvala 06.09.2012 21:51:07, всего редактировалось 1 раз.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
vicvala писал(а):Скролы ещё работают не верно. Стоит auto. Если 1 запись, то V.скрола нет, если больше одной записи (хотя есть место показать записи в гриде без скрола) - появляется V.скрол.
Всё верно
Скрол показывает позицию в наборе данны а не позицию отображения на экране.
Добрый день! Есть проблема с фильтрами в rxdbgrid. Один и тот же проект: под Vista (lazarus 1.0, fpc 2.6.0, rx ревизия 2540) все работает на ура (список значениями заполняется, грид фильтруется), под XP (lazarus 1.0, fpc 2.6.0, rx ревизия 2540) - как в посте haword'а на второй странице, пустой список. Причем если valuelist заполнить вручную, фильтр все равно пустой (ShowMessage(RxDBGrid1.ColumnByFieldName('test_field').Filter.ValueList.Text) выводит все значения фильтра).
появилась новая проблема на старом месте
взял сегодня последнюю ночную сборку, возникает Access Violation при попытке программно добавить столбец в грид, на самом первом столбце вот с таким кодом
исключение возникает в модуле rxdbgrid в процедуре CalcStatTotals вот в этом месте
раньше всё работало... пытался проверить assigned колонки, футера колонки, не помогло
Добавлено спустя 1 минуту 3 секунды:
да, забыл отметить что vGrid.OptionsRx := [rdgAllowColumnsForm, rdgAllowDialogFind, rdgFooterRows, rdgAllowQuickFilter, rdgAllowToolMenu];
Добавлено спустя 20 минут 21 секунду:
- так и валится ListIndex out of bounds, каждый раз после обновления компонента добавляю проверку if not F.IsNull then в функции ErrorTestValue
Добавлено спустя 4 часа 16 минут 53 секунды:
вопрос закрыт, решил проблему методом vGrid.Columns.LinkFields, а далее цикл по столбцам грида, вместо поштучного создания и настройки, в общем сам накосячил
Код: Выделить всё
var
vColumn: TRxColumn;
...
vColumn := vGrid.Columns.Add;//Access violation
исключение возникает в модуле rxdbgrid в процедуре CalcStatTotals вот в этом месте
Код: Выделить всё
...
//Дополнительно проверим - а стоит ли делать пробег по данным - есть ли агрегатные функции
APresent := False;
for i := 0 to Columns.Count - 1 do
begin
APresent := TRxColumn(Columns[i]).Footer.FValueType in//Access violation
[fvtSum, fvtAvg, fvtMax, fvtMin];
if APresent then
break;
end;
...
раньше всё работало... пытался проверить assigned колонки, футера колонки, не помогло
Добавлено спустя 1 минуту 3 секунды:
да, забыл отметить что vGrid.OptionsRx := [rdgAllowColumnsForm, rdgAllowDialogFind, rdgFooterRows, rdgAllowQuickFilter, rdgAllowToolMenu];
Добавлено спустя 20 минут 21 секунду:
- так и валится ListIndex out of bounds, каждый раз после обновления компонента добавляю проверку if not F.IsNull then в функции ErrorTestValue
Добавлено спустя 4 часа 16 минут 53 секунды:
вопрос закрыт, решил проблему методом vGrid.Columns.LinkFields, а далее цикл по столбцам грида, вместо поштучного создания и настройки, в общем сам накосячил
Здравствуйте! Не знаю может кто уже писал, то извиняйте. Но в общем такая проблема:
Lazarus 1.0.2
FPC 2.6.0
Kubuntu 12.10
После создания в Grid`e у Column EditButtons и запуска приложения через консоль Heaptrc выдает утечки памяти.
Lazarus 1.0.2
FPC 2.6.0
Kubuntu 12.10
После создания в Grid`e у Column EditButtons и запуска приложения через консоль Heaptrc выдает утечки памяти.
Код: Выделить всё
[TGtk2WidgetSet.Destroy] WARNING: There are 1 unreleased GDIObjects, a detailed dump follows:
[TGtk2WidgetSet.Destroy] GDIOs: 00007F9564BA83C0
[TGtk2WidgetSet.Destroy] gdiBitmap: 1
Heap dump by heaptrc unit
5248992 memory blocks allocated : 312378748/336849424
5248988 memory blocks freed : 312377948/336848624
4 unfreed memory blocks : 800
True heap size : 3440640 (512 used in System startup)
True free heap : 3438976
Should be : 3438816
Call trace for block $00007F9561605720 size 400
$000000000047D52A
$000000000054A0D6 line 1576 of graphtype.pp
$00000000005B71BD line 104 of include/rasterimage.inc
$00000000005B9F5D line 68 of include/custombitmap.inc
$00000000008BB997 line 618 of vclutils.pas
$0000000000895248 line 949 of rxdbgrid.pas
$00000000004F64B2
$000000000050DDDA
Call trace for block $00007F954D9B8FE0 size 184
$00000000005B7137 line 96 of include/rasterimage.inc
$00000000005B9F5D line 68 of include/custombitmap.inc
$00000000008BB997 line 618 of vclutils.pas
$0000000000895248 line 949 of rxdbgrid.pas
$00000000004F64B2
$000000000050DDDA
$000000000050C3D3
$000000000050DDDA
Call trace for block $00007F954D9CF9C0 size 104
$00000000008BB97E line 617 of vclutils.pas
$0000000000895248 line 949 of rxdbgrid.pas
$00000000004F64B2
$000000000050DDDA
$000000000050C3D3
$000000000050DDDA
$000000000050CD65
$00000000005011AA
Call trace for block $00007F9564BA83C0 size 112
$000000000071C509 line 637 of gtk2/gtk2def.pp
$00000000006347AC line 5319 of gtk2/gtk2widgetset.inc
$000000000063511A line 5549 of gtk2/gtk2widgetset.inc
$000000000071F37E line 793 of gtk2/gtk2devicecontext.inc
$000000000071F752 line 909 of gtk2/gtk2devicecontext.inc
$000000000071F1B8 line 751 of gtk2/gtk2devicecontext.inc
$000000000063EEC0 line 3958 of gtk2/gtk2winapi.inc
$00000000005D17E3 line 288 of include/winapi.inc
Ау сюда никто не заходит что ли.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Без элементарного примера ваше сообщение не актуально, т.к. может не воспроизводится на компьютере разработчика.
