Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как при поиске в DBGRID выделять цветом найденные значения [D7]


Masha Streltsova ©   (2004-02-17 16:29:00) 

Как при поиске слова в DBGRID выделять все найденные слова цветом. Если есть примерчик скиньте файл плиз ;) derliga@mail.ru


Masha Streltsova   (2004-02-17 16:46:00) [1]

спасибо большое, сейчас попробуем!


Guest   (2004-02-17 16:36:00) [2]

[1] Соловьев © (17.02.04 16:32)

+ лучше перекинуть первый DefaultDraw в конец процедуры (в новую ветвь else). Чтобы не рисовать 2 раза для указанных полей.


Соловьев   (2004-02-17 16:32:00) [3]


procedure TFForm.DBGridTableDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
const dat="30.12.2999";
var
holdColor: TColor;
begin
IF TDBGrid(Sender).DataSource.DataSet.RecNo = RecNum
Then TDBGrid(Sender).Canvas.Brush.Color:=RGB($00,$cc,$ff);

IF gdSelected IN State
Then Begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
End;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

holdColor := DBGridTable.Canvas.Brush.Color; {сохраняем оригинальный цвет}
//calcD
if Column.FieldName ="calcD" then {"раскрашиваем" ячейки только для поля
calcD}
if Column.Field.asString = "бессрочно" then
begin
DBGridTable.Canvas.Brush.Color := $00000ff00;//Green
DBGridTable.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGridTable.Canvas.Brush.Color := holdColor;
end
else
if Column.Field.AsString <> "" then
if (StrToDate(Column.Field.AsString) < Date) then //срок истек
begin
DBGridTable.Canvas.Brush.Color := clRed;
DBGridTable.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGridTable.Canvas.Brush.Color := holdColor;
end
end;


Вот когда-то писал


Наверх

Титульная страница Поиск, карта сайта Написать письмо