Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > умный DBGrid


Автор: dvamaster 19.9.2006, 08:44
Доброго времени суток!

Возникла промблемка!

Нужен Grid с разными шрифтами и подсветкой строк, причем выбирается цвет и шрифт по значениям в полях!

Автор: Vas 19.9.2006, 08:59
Код

Procedure TForm1.DBGridPeopleDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
Begin
   if TDBGrid(Sender).DataSource.DataSet.FieldByName('Date_dismiss').AsString<>'' then
      begin
         TDBGrid(Sender).Canvas.Font.Color:=clMaroon; //делаем цвет шрифта clMaroon (что-то типа бордового :) )
         TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
      end
   else
      begin
         TDBGrid(Sender).Canvas.Font.Color:=clBlack; //иначе обычный черный 
         TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
      end;
   if (gdSelected in State)    then
      begin
        TDBGrid(Sender).Canvas.Font.Color := clHighLightText; //если ячейка выделена то шрифт делаем подсвеченным (как объявлен в винде)
        TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
      end;
End;

А вообще много раз обсуждалось.

Автор: dvamaster 19.9.2006, 09:08
А готовых компонентов нету?

То есть, включен в него список фонтов и список цветов, и выбираются по идентификатору в поле.

Время жмет, как... не знаю что!!!

В будущем-то все равно напишу такой, если нету в природе.

Автор: Vas 19.9.2006, 09:38
Я таких компонентов не встречал.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)