Главная страница
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
14-56306
PVOzerski
2002-09-23 02:42
2002.10.17
А не заняться ли антирекламой?


14-56330
Vikuksa
2002-09-24 12:43
2002.10.17
Просто любопытно!


3-55955
Woolen
2002-09-24 16:08
2002.10.17
Кроссплатформенная БД


3-55966
Bishop
2002-09-25 11:56
2002.10.17
Можно ли отменить выполнение запроса в InterBase?


4-56415
asdqwer
2002-09-04 07:32
2002.10.17
1314