Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.17;
Скачать: CL | DM;

Вниз

Цвет строки в ДБ Грид   Найти похожие ветки 

 
SLS   (2002-09-21 18:37) [0]

Помогите ПЛЗ!
Конкретный код, как поменять Background Color в строке или первой ячейке DBGrid по DblClick, и чтобы он сохранился до выхода из окна. Я задолбался с этими TRect & TGridDrawState.
Спасибо!


 
MBo ©   (2002-09-22 06:17) [1]

статья "Разноцветный DBGrid" на delphi.vitpc.com


 
ttttttt   (2002-09-23 08:38) [2]

procedure TListAnketForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
Var DrawDef:Boolean;
begin
DrawDef:=True;
With DBGrid1.Canvas do
Begin
If (Query1SomeClose.AsString="Y") and ( not (gdFocused in State)) Then
Begin
Brush.Color:=clBtnFace;
Font.Color:=clBlack;
DrawDef:=False;
End;
If (Query1FotoPresent.AsString="N") and ( not (gdFocused in State)) Then
Begin
Font.Color:=clRed;
DrawDef:=False;
End;
If ((Query1NewPay.AsDateTime-Date)<14) and ( not (gdFocused in State)) Then
Begin
Font.Style:=[fsBold];
DrawDef:=False;
End;
If ((Query1NewPay.AsDateTime-Date)<=1) and ( not (gdFocused in State)) Then
Begin
Font.Style:=[fsBold];
Font.Color:=clBlack;
Brush.Color:=clRed;
DrawDef:=False;
End;
If Not DrawDef Then
Begin
FillRect(Rect);
TextOut(Rect.Left+1,Rect.Top+2,Column.Field.Text);
End
Else DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
End;


end;


 
Miss ©   (2002-09-25 10:02) [3]

Для изменения цвета некоторых ячеек таблицы TDBGrid необходимо определить реакцию на событие DBGrid1DrawDataCell и проверив необходимые условия, перерисовать ячейку вручную (если в этом есть необходимость).

Все необходимые данные для отрисовки передаются в параметрах процедуры. Отрисовка белых букв на красном фоне если, перерисовывается поле "First_I", ячейка не в фокусе и значение поля меньше нуля.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
with DBGrid1.Canvas DO
if (Field.FieldName = "First_I") AND (NOT (gdFocused in State)) AND (Field.AsInteger < 0) then begin
Brush.Color := clRed;
Font.Color := clWhite;
end;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.10.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
1-56197
nika_ufc
2002-10-06 14:23
2002.10.17
Помагите


4-56416
Витёк
2002-09-04 23:00
2002.10.17
Проблемы с System Area (Shell_NotifyIcon)


6-56259
Werewolfru
2002-08-14 12:04
2002.10.17
Скачать файл


4-56420
BorisMor
2002-09-02 12:58
2002.10.17
Процесс.


3-55915
alf_
2002-09-26 21:28
2002.10.17
DBGrid