|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите сделать DBGrid - как на картинке
В приложенной картинке записи в гриде выделяются двумя цветами чтоб не сливались, как сделать так-же???? (cxdbgrid (Devexprees))
|
#2
|
||||
|
||||
У TableView свойство Style.ContentOdd. У этого стиля изменить Color.
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Ekler1 (03.11.2017)
|
#3
|
|||
|
|||
Спасибо!
Цитата:
|
#4
|
|||
|
|||
DBrgid
А в обычном DBGrid можно такое сделать?
|
#5
|
||||
|
||||
Можно, нужно раскрашивать строки "под зебру" в DrawColumnCell
Код:
var i: integer = 0; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with Sender as TDBGrid do begin if(DataCol = 0) then inc(i); if (i mod 2 = 0) then begin Canvas.Font.Color := clBlack; Canvas.Brush.Color:= clCream; end else begin Canvas.Font.Color := clBlack; Canvas.Brush.Color:= clWhite; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
|||
|
|||
Цитата:
|
#7
|
||||
|
||||
Этот кусман был проверен на подопытной DBGrid - если не щёлкать по строчкам дибисетки, то они нормально "полосатятся", есть проблема в нарушении чётности при последующих манипуляциях, но видимо, решается это предварительным возвратом дефолтных значений кистей каждый раз перед прорисовкой колонок
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
Цитата:
Точнее все строки красятся в цвет который Код:
var i: integer = 0; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with Sender as TDBGrid do begin if(DataCol = 0) then inc(i); if (i mod 2 = 0) then begin Canvas.Font.Color := clBlack; Canvas.Brush.Color:= clCream; - Вот в этот! end else begin Canvas.Font.Color := clBlack; Canvas.Brush.Color:= clWhite; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; |
#9
|
||||
|
||||
Вот ещё вариант
Код:
var flg: boolean = true; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DataCol = 0 then flg:= not flg; with Sender as TDBGrid do begin Canvas.Font.Color := clBlack; if flg then Canvas.Brush.Color:= clCream else Canvas.Brush.Color:= clWhite; DefaultDrawColumnCell(Rect, DataCol, Column, State); end; {with} end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
|||
|
|||
Цитата:
Проверил оба кода работают на D7(( А на RAD Studio XE7 не хочет((( |
#11
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#12
|
||||
|
||||
Используйте библиотеку Ehlib. Там раскраска ячеек делается элементарно. И не только чётный/нечётный, но и гораздо более замысловатая.
Последний раз редактировалось Guaho, 28.11.2017 в 00:39. |
#13
|
|||
|
|||
Цитата:
|