![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid [D5, Win2k, WinXP]
HanIP © (2003-04-15 09:58:00)Есть поле в таблице Flag:boolean как сделать так что если оно false то строка грида должна окраситься в красный или любой другой цвет.
MsGuns (2003-04-15 11:34:00) [1]Вот кусок, который красит выбранную строку грида в синий (стандартный), если сам грид в фокусе, и серый, если нет. Фон грида "баксовый" независимо от того, в фокусе грид или нет.
Тебе же надо перед определением цвета проверять содержимое соотв.поля - флажка.
Св-во Option включает dgAlwaysShowSelection, dgRowSelect
procedure TForm1.grSuperDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
{
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Выражаю огромную благодарность Леночке Филипповой за ее превосходную !
! статью в "Королевстве Дельфи" "ПОЛОСТАЫЙ ГРИД" от 12 апреля 2000 г. !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
var
BkgColor: TColor;
begin
if not (gdSelected in State) then
BkgColor := clMoneyGreen // Для не текущей строки
else
if TDBGrid(Sender).Focused then
BkgColor := clDefault // Черный для текущей строки
else
BkgColor := clMedGray; // Серый для текущей строки
TDBGrid(Sender).Canvas.Brush.Color:=BkgColor;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
evvcom (2003-04-15 10:29:00) [2]А Canvas.TextOut кто делать будет?
MBo (2003-04-15 10:25:00) [3]или сам выводи TrxtOut или DefaltDrawing вызывай
пример в хелпе на TCustomDBGrid.OnDrawDataCell
HanIP (2003-04-15 10:21:00) [4]пишу так
DBGrid1.Canvas.brush.Color:=clRed;
if Main.FieldbyName("Flag").AsBoolean then
DBGrid1.Canvas.FillRect(Rect);
и текста не видно
evvcom (2003-04-15 10:09:00) [5]OnDrawColumnCell