Олег, не получается. Нельзя при отрисовке перемещаться по DataSet.
Вот мой код. Я перемещаюсь по датасету dsList на позицию строки. Хочу закрасить фон ячейки "наименования" значением, полученным из базы данных.
Но получается чехарда, курсор начинает перемещаться по гриду хаотично. А точнее "липнет" к низу отрисованной области грида.
procedure TListFrame.Grid1DrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
begin
if Column.Header = 'НАИМЕНОВАНИЕ' then
begin
dsList.RecNo := Row + 1;
Canvas.Fill.Color := dsListCOLOR.AsInteger;
Canvas.FillRect(Bounds,0,0,AllCorners,1);
end;
end;
У грида есть модель. Я пробовал так:
Grid1.Model.GetValue(8, Row, true).AsInteger;
Колонка номер 8 в гриде - это цвет, она не видимая. Но значение получить не удается. Хотя я при создании фрейма прописываю:
Grid1.Model.DataStored := true;
Не понимаю как это должно работать, раньше было проще...
P.S.
Все-таки удается через модель, но как же это не удобно! По имени колонки нельзя обратиться, так как имен у колонок нет...