var
v_DBGrid: TDBGrid;
begin
v_DBGrid:=TDBGrid.Create(DetailsFrm);
v_DBGrid.OnDrawColumnCell:=MyOnDraw;
....
end;
OnDrawColumnCell для динамически создаваемого DBGrid
Посоветуйте как указать процедуру, которая будет вызываться при событии OnDrawColumnCell динамически создаваемого DBGRID.
Код:
Где MyOnDraw задана так:
Код:
procedure MyOnDraw(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
...
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
...
end;
Компилироваться категорически отказывается, в то время как
подобное для чекбокса работает нормально
v_CheckBox:=TCheckBox.Create(v_GroupBox);
...
v_CheckBox.OnClick := MyEventForCheck;
Вы добавили в секцию uses заголовки Grids, DBGrids?
Цитата: yager84
Компилируется замечательно.
Вы добавили в секцию uses заголовки Grids, DBGrids?
Вы добавили в секцию uses заголовки Grids, DBGrids?
Спасибо! Всё заработало.
To Yager84 & to ALL
Может быть еще подскажете как не отображать строку в DBGRID?
Что-то вроде
Код:
procedure my_GridDrawColumnCell (Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if OracleDataSet1.FieldByName('status').Value='C' then
With (Sender as TDBGrid ) do begin
// VISIBLE строки=FALSE
никаких свойств по отображению строк не нашел(
только для колонок
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if OracleDataSet1.FieldByName('status').Value='C' then
With (Sender as TDBGrid ) do begin
// VISIBLE строки=FALSE
никаких свойств по отображению строк не нашел(
только для колонок
end;
DBGrid тупо отображает все, что ему подсовывает DataSource. Фильтруй лишние строки с помощью запросов, либо с помощью встроенного в DataSet фильтра (св-во Filter).