Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-56327
Lancelot
2002-09-21 01:06
2002.10.17
American Beauty


14-56317
VDen
2002-09-24 17:47
2002.10.17
Доклад по Дельфям.


1-56069
Осирис
2002-10-07 15:07
2002.10.17
Ошибка при вызове формы из dll


1-56188
margol
2002-10-07 16:22
2002.10.17
Ответ


4-56409
Kons
2002-09-03 22:35
2002.10.17
Запретить удалять файлы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский