Любитель работать на официально-стабильных версиях лазаруса вновь вопрошает к alexs-у...

Долго не мог понять причину вот такой вот странной ошибки (см.рис) в собственной бета-проге. Естественно думал, что руки кривые...
Оно, конечно не исключено, но вот что обнаружил. Ошибка возникает рэндомно при закрытии-открытии датасета ТОЛЬКО если у связанного с датасетом
RxDBGrid-а включена опция
rdgFooterRows. При этом сам сначала отрисовка самого грид "замораживается" (полностью, сплошной белый фон), а после и прога отказывается работать.
RxDBGrid:
- мультизаголовки включены и по прежнему глючат;
- футер включен (1 строка);
- TRxColumn(Grid.Columns[j]).Footer.ValueType:=
fvtStaticText; (все колонки)
- ошибка не завит от того пишу что-то в футер или нет.
- "
возьми из новой версии модуль rxDBGrid" выполнено. Версия rxDBGrid последняя.
Добавлено спустя 3 часа 11 минут 36 секунд:Ошибку победил корявейшим образом. Отписываюсь
alexs-у для информации...
Сначала сделал так:
- Код: Выделить всё
unit rxdbgrid;
...
procedure TRxDBGrid.CalcStatTotals;
var
P:TBookmark;
DS:TDataSet;
i:integer;
// J:integer;
begin
if (not ((rdgFooterRows in OptionsRx) and DatalinkActive))
or (Columns.Count = 0)
//or (TRxColumn(Columns).Footer.ValueType = fvtStaticText) // попытался воткнуть проверку, дабы отменить лишнее не нужное вхождение в процедуру, но, понятное дело, не работает. Не знаю как правильно воткнуть - не я автор юнита
then Exit;
inc(FInProcessCalc);
DS:=DataSource.DataSet;;
...
и т.д.
Понятно дело, что ничего не получилось и не могло получиться. Сделал так:
- Код: Выделить всё
unit rxdbgrid;
...
procedure TRxDBGrid.CalcStatTotals;
var
P:TBookmark;
DS:TDataSet;
i:integer;
// J:integer;
begin
exit; // все равно футер у меня статиктекст - ничего подсчитывать не надо - лишний пробег по источнику данных отменен
if (not ((rdgFooterRows in OptionsRx) and DatalinkActive)) or (Columns.Count = 0)
then Exit;
inc(FInProcessCalc);
DS:=DataSource.DataSet;;
...
и т.д.
Все заработало как часы. Прими к сведению плз. Спасибо.
И еще... не помешало бы добавить что-то вроде
TRxColumn(Columns).
Footer.Font.Style:= fsBold; Это так... На будущее...