![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвет шрифта DBGrid [D6, XP]
Андрей_1 © (2010-07-20 08:47:00)При наведении фокуса на какую-либо ячейку меняется цвет шрифта с чёрного на белый. Как сделать чтобы при выделении ячейки цвет шрифта оставался чёрным.
Андрей_1 (2010-07-20 13:08:00) [1]Пытался здесь присвоить чёрный цвет шрифту.
Плохиш (2010-07-20 12:38:00) [2]
> procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const
> Rect: TRect;
> Field: TField; State: TGridDrawState);
> begin
> DBGrid1.Font.Color:=ClBlack;
> TDBGrid(Sender).Canvas.Font.Color:=clBlack;
>
> end;
Вот это, что за испражнение?
Андрей_1 (2010-07-20 12:12:00) [3]Всё!!! Спасибо врубился! Работает вот так:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
ColumnAction : TColumnAction;
begin
ColumnAction := GetColumnAction(Column.FieldName);
IF DBGrid1.Columns[2].Field.asstring ='ÊØ' Then
TDBGrid(Sender).Canvas.Brush.Color:=RGB($00,$FF,$22);
IF DBGrid1.Columns[2].Field.asstring ='ØÝ' Then
TDBGrid(Sender).Canvas.Brush.Color:=RGB($FF,$FF,$33);
TDBGrid(Sender).Canvas.Font.Color:=clBlack;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
DBGrid1.Font.Color:=ClBlack;
TDBGrid(Sender).Canvas.Font.Color:=clBlack;
end;
Но про рисование не понял.
Плохиш (2010-07-20 12:06:00) [4]
> IF DBGrid1.Columns[2].Field.asstring ='ÊØ' Then
> TDBGrid(Sender).Canvas.Brush.Color:=RGB($,$FF,$22);
> IF DBGrid1.Columns[2].Field.asstring ='ØÝ' Then
> TDBGrid(Sender).Canvas.Brush.Color:=RGB($FF,$FF,$33);
>
> TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,
> State);
>
И где здесь "чёрный"?
> procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const
> Rect: TRect;
> Field: TField; State: TGridDrawState);
> begin
> //DBGrid1.Font.Color:=ClBlack;
> TDBGrid(Sender).Canvas.Font.Color:=clBlack;
>
> end;
И где здесь рисование?
PS. Скучно-то как...
Андрей_1 (2010-07-20 11:53:00) [5]Вот так прописано и всё равно цвет шрифта меняется на на белый при фокусе:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
ColumnAction : TColumnAction;
begin
ColumnAction := GetColumnAction(Column.FieldName);
IF DBGrid1.Columns[2].Field.asstring ='ÊØ' Then
TDBGrid(Sender).Canvas.Brush.Color:=RGB($,$FF,$22);
IF DBGrid1.Columns[2].Field.asstring ='ØÝ' Then
TDBGrid(Sender).Canvas.Brush.Color:=RGB($FF,$FF,$33);
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
//DBGrid1.Font.Color:=ClBlack;
TDBGrid(Sender).Canvas.Font.Color:=clBlack;
end;
Плохиш (2010-07-20 11:25:00) [6]TDBGrid(Sender).Canvas.Font.Color
и
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
Anatoly Podgoretsky (2010-07-20 11:24:00) [7]> Андрей_1 (20.07.2010 11:14:04) [4]
State not in [gdFocused]
Плохиш (2010-07-20 11:24:00) [8]TDBGrid(Sender).Canvas.Font.Color
и
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
Андрей_1 (2010-07-20 11:14:00) [9]В OnDrawDataCell пишу:
DBGrid1.Font.Color:=ClBlack;
Всё равно меняется цвет на фокусе.
Андрей_1 (2010-07-20 11:06:00) [10]Спасибо буду пробовать.
{RASkov} (2010-07-20 10:13:00) [11]OnDrawDataCell
{RASkov} (2010-07-20 10:05:00) [12]> [0] Андрей_1 © (20.07.10 08:47)
Всё что хочешь можно рисовать в OnCellDraw....