Главная страница
    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
1-56209
Cowboy Huggies :)
2002-10-07 19:33
2002.10.17
как получить денежный формат из настроек Win


1-56171
Ryser
2002-10-07 14:36
2002.10.17
String <-> Pchar


1-56178
Демонов Е.В.
2002-10-07 14:54
2002.10.17
Вопрос Про Mutex


14-56346
AZ
2002-09-21 08:31
2002.10.17
Сократить свопинг


3-55965
vis79
2002-09-24 08:28
2002.10.17
Неверно выполняется запрос SQL для поля Time





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский