Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизВыделение цветом ячейки в DBGrid Найти похожие ветки
← →
nik © (2004-06-30 10:09) [0]как можно сделать определенную ячейку другим цветом
на пример если в данной ячейке слово "зеленый" то ячейка зеленая а если слово "красный" то она красная
← →
Explorer (2004-06-30 10:16) [1]обрабатывай onDrawColumnCell сетки.
примерно так:
if(QueryActiveDogovors.FieldByName("OnDatePaid").AsDateTime)=date() then begin
DBGridActiveDogovors.{Columns[0]}Canvas.Font.Color:=clBlue;
end;
← →
Алхимик © (2004-06-30 13:38) [2]А если в ячейке слово "серо-буро-малиновый"?
← →
Explorer (2004-06-30 14:02) [3]>Алхимик ©
ну тогда светомузыка получится :)
← →
nik © (2004-07-07 10:12) [4]В принцепе получилось, но немного не то что я хотел, она выделяется цветом тогда когда на ней стоит курсор, а мне бы хотелось что бы она покраснела при выводе на экран, ну тоесть когда база открылась необходимые ячейки выделились бы красным цветом
сам текст выгледит так
if ADOTable1.FieldByName("S_DATE").AsString = "" then
DBGrid1.Canvas.Font.Color := clred;
это в OnDrawColumnCell объекта DbGrid
← →
Соловьев © (2004-07-07 10:15) [5]
> а мне бы хотелось что бы она покраснела при выводе на экран,
> ну тоесть
приведи код как ты сделал.
и, кстати, очень полезно - http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
← →
_ALEXey_ (2004-07-07 11:38) [6]А обработку не в OnDrawDataCell надо?
← →
ЮЮ © (2004-07-07 11:42) [7]ADOTable1.FieldByName("S_DATE").AsString = ""
для текущей записи независимо от того, где стоит курсор. Очевидно этот код стоит внутри еще какого-то if
← →
nik © (2004-07-12 13:39) [8]to Соловьев
Спасибо за ссылку она решила все мои вопросы, относительно выделения!!!
Это способ выделения когда на данной ячейке стоит курсор
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ADOTable1.FieldByName("S_DATE").AsString = "" then
DBGrid1.Canvas.Font.Color := clred;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ADOTable1.FieldByName("S_DATE").AsString = "" then
если необходимо выделять только данную ячейку то добавляем еще одно условие
if Column.FieldName = "S_DATE" then
with DBGrid1.Canvas do
begin
Brush.Color:=clGreen;
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
end;
end;
to ЮЮ
нет данный код ни в каком if болие не замешан. (в иных порочных связях тоже :-) )
to _ALEXey_ я ещё не доконца разобрался с обработчиками но по моему
OnDrawColumnCell - влияет на внешний вид ячейки, а
OnDrawDataCell - влияет на содержимое ячейки,
но это мое субективно не разобравшееся до конца мнение
← →
ЮЮ © (2004-07-13 03:33) [9]Поставь DBGrid1.DefaultDrawing = false, а в конце обработчика добавь:
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c