1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Раскраска Dbgrid

Тема в разделе "Delphi - программирование", создана пользователем Plos, 9 май 2007.

Статус темы:
Закрыта.
  1. Plos

    Plos Гость

    Репутация:
    0
    Дл раскрашивания строк BGrid в Delphi 6 применил такую процедуру:
    Код:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    
    begin
    
    IF DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 Then
    begin
    DBGrid1.Canvas.Font.Color := clBlack;
    DBGrid1.Canvas.Brush.Color:= clCream;
    
    end;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    
    end;
    Но почему-то нет периодичности закрашивания. Красит безсистемно, хотя должна чередовать чётные и нечётные. В чём ошибка.
    Поробовал по другому.
    Код:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    
    begin
    with DBGrid1.Canvas do
    begin
    if odd(Table1.RecNo) then Brush.Color := clSilver else Brush.Color :=
    clBlue;
    FillRect(Rect);
    end;
    
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    
    end;
    Результат то же
     
  2. Plos

    Plos Гость

    Репутация:
    0
    Нашёл в чём проблема. Если производиться сортировка записей типа:


    Table1.IndexName :=('Num');





    нарушается последовательность раскраски строк. Как можно решить эту проблемку. Хочется, чтобы таблицы выглядели посимпатичнее. Но сортировка нужна.
     
  3. LAW

    LAW Гость

    Репутация:
    0
    Делай:
    Код:
    Query1->SQL->Text:=('SELECT поле1,поле2 FROM таблица1 GROUP BY NUM');
    Query1->Open();
    Удачи.
     
  4. Plos

    Plos Гость

    Репутация:
    0
    Я использую TDatabase, TDatasource, Ttable, TDBGrid и сортирую Table1.IndexName :=('Num');
    Можно как-нибудь решить эту проблемку при использовании этих компонентов.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей