1) процедура OutCaptionCellText
Если TitleStyle стоит не tsNative то бакграунд заголовков таблицы не прорисовывается. А не tsNative всегда при создании нового компонента. Разкомментировал Canvas.FillRect(aRect);
и все встало на свои места. Не ужели этот баг еще никто не заметил?
2) При включении в опциях OptionRx параметра rdgFilter, компонент все заголовки рисует со стилем Italic. Лечение:
- убрать в constructor TRxColumnFilter.Create(Owner: TRxColumn) строчки присваивающие в наглую шрифтам стиль Italic, ибо нафиг не надо, кому надо выставит сам, иначе от этого стиля не избавишься.
- в процедуре TRxDBGrid.DefaultDrawFilter ищем и убиваем строчки в этой процедуре
- Код: Выделить всё
if (dgIndicator in Options) and (aCol = 0) then
begin
Canvas.FillRect(aRect);
DrawCellGrid(aCol, aRow, aRect, aState);
exit;
end;
DrawCellGrid(aCol, aRow, aRect, aState);
а вместо них вставляем
- Код: Выделить всё
if (dgIndicator in Options) and (aCol = 0) then
begin
if (TitleStyle = tsNative) then
DrawThemedCell(aCol, aRow, aRect, aState)
else
begin
Canvas.FillRect(aRect);
DrawCellGrid(aCol, aRow, aRect, aState);
end;
exit;
end;
if (TitleStyle = tsNative) then
DrawThemedCell(aCol, aRow, aRect, aState)
else
begin
Canvas.FillRect(aRect);
DrawCellGrid(aCol, aRow, aRect, aState);
end;
далее ищем
- Код: Выделить всё
ft:=Canvas.Font;
и заменяем на эти две
- Код: Выделить всё
ft:=TFont.Create;
ft.Assign(Canvas.Font);
ищем
- Код: Выделить всё
with TRxColumn(Columns[MyCol]).Filter do
begin
Canvas.Brush.Color := Color;
Canvas.FillRect(aRect);
заменяем на
- Код: Выделить всё
with TRxColumn(Columns[MyCol]).Filter do
begin
if (TitleStyle <> tsNative) then
begin
Canvas.Brush.Color := Color;
Canvas.FillRect(aRect);
end;
далее ищем ниже и убираем
- Код: Выделить всё
Canvas.Font:=ft;
и заменяем на
- Код: Выделить всё
Canvas.Font.Assign(ft);
ft.Free;
3) для меня баг для кого то может быть и фича Короче, если выставить в опциях rdgFilter то фильтр появляется но пустой а при закрытии датасета грида вообще фильтр скрывается. правим:
- procedure TRxDBGrid.OnFilter(Sender: TObject) - после строк
- Код: Выделить всё
...
C.Filter.ValueList.Add(C.Filter.EmptyValue);
end;
добавляем
- Код: Выделить всё
if not DataSource.DataSet.Active then
exit;
- правим procedure TRxDBGrid.LinkActive(Value: boolean);
ищем
CalcStatTotals;
добавляем после нее
- Код: Выделить всё
if rdgFilter in OptionsRx then
OnFilter(nil);
далее ищем ниже
OptionsRx := OptionsRx - [rdgFilter];
удаляем и добавляем
- Код: Выделить всё
if rdgFilter in OptionsRx then
OnFilter(nil);
и еще с футером такие же изменения по замене DrawCellGrid на DrawThemedCell вроде бы работает так как надо. мне