Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Добавление цветных ячеек в wwDBGrid


Автор: staziah2 17.6.2015, 08:09
Добрый день! Скажите,пожалуйста,как сделать,чтобы в дбгриде закрашивались только два слова (демонтаж-красный,монтаж зеленый) в колонке виды работ. И можно как то в дбгриде сделать не одну длинную строку,а чтобы и переносить на новую строку,как бы многострочный. Спасибо за помощь.

Автор: Poseidon 17.6.2015, 10:19
Код

procedure TForm1.DBGridDrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
    with (Sender as TDBGrid).Canvas do
      begin
        FillRect(Rect);

        if (Sender as TDBGrid).DataSource.DataSet.FieldByName('VidRabot').AsString.Equals('демонтаж') then
          Font.Color := clRed;

        if (Sender as TDBGrid).DataSource.DataSet.FieldByName('VidRabot').AsString.Equals('монтаж') then
          Font.Color := clGreen;

        TextOut(Rect.Left + 2, Rect.Top + 3, Field.AsString);
      end;
end;


Многострочность, в принципе, делается так же, через TextOut.

Автор: staziah2 18.6.2015, 01:46
Цитата(Poseidon @ 17.6.2015,  10:19)
Код

procedure TForm1.DBGridDrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
    with (Sender as TDBGrid).Canvas do
      begin
        FillRect(Rect);

        if (Sender as TDBGrid).DataSource.DataSet.FieldByName('VidRabot').AsString.Equals('демонтаж') then
          Font.Color := clRed;

        if (Sender as TDBGrid).DataSource.DataSet.FieldByName('VidRabot').AsString.Equals('монтаж') then
          Font.Color := clGreen;

        TextOut(Rect.Left + 2, Rect.Top + 3, Field.AsString);
      end;
end;


Многострочность, в принципе, делается так же, через TextOut.

Спасибо большое))

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