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


Автор: AntonStr 7.6.2008, 03:01
Здравствуйте. 

Пишу такой запрос на обработчик нажатия CheckBox1:
Код

begin
  if CheckBox1.Checked=false then
      begin
         Form1.ADOQuery1.Close;
         Form1.ADOQuery1.SQL.Text:='Select * from Сотрудники';
         Form1.ADOQuery1.Open;
    end
  else
   begin
    Form1.ADOQuery1.Close;
    Form1.ADOQuery1.SQL.Text:='Select * from Сотрудники where Статус="уволен"';
    Form1.ADOQuery1.Open;
   end

end;


Так вот, как выделить строки в DBGrid, с уволенными сотудниками, красным цветом?

Автор: Deniz 7.6.2008, 08:03
Смотри событие грида OnDrawDataCell/OnDrawDataColumn

Автор: Savek 7.6.2008, 08:13
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
with DBGrid1 do
if DataSource.DataSet.Active then
  if DataSource.DataSet.FieldByName('Статус').AsString='Уволен' then
     Canvas.Brush.Color:=clRed;
     DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;


Автор: AntonStr 9.6.2008, 00:20
Цитата(Savek @ 7.6.2008,  08:13)
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
with DBGrid1 do
if DataSource.DataSet.Active then
  if DataSource.DataSet.FieldByName('Статус').AsString='Уволен' then
     Canvas.Brush.Color:=clRed;
     DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;


А как сделать, чтобы при запуске программы у меня на форме в гриде отображались только те строки, где статус "работает" ?

Автор: Rodman 9.6.2008, 10:00
в запросе предусмотри это!

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