Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цвет шрифта 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....


Наверх

Титульная страница Поиск, карта сайта Написать письмо