Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.11.2017, 12:23
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию Помогите сделать DBGrid - как на картинке

В приложенной картинке записи в гриде выделяются двумя цветами чтоб не сливались, как сделать так-же???? (cxdbgrid (Devexprees))
Изображения
Тип файла: png Безымянный.png (209.0 Кбайт, 19 просмотров)
Ответить с цитированием
  #2  
Старый 03.11.2017, 12:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

У TableView свойство Style.ContentOdd. У этого стиля изменить Color.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Ekler1 (03.11.2017)
  #3  
Старый 03.11.2017, 12:50
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию Спасибо!

Цитата:
Сообщение от NumLock
У TableView свойство Style.ContentOdd. У этого стиля изменить Color.
Спасибо, разобрался!)
Ответить с цитированием
  #4  
Старый 23.11.2017, 11:18
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию DBrgid

А в обычном DBGrid можно такое сделать?
Ответить с цитированием
  #5  
Старый 23.11.2017, 14:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно, нужно раскрашивать строки "под зебру" в 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  
Старый 24.11.2017, 14:09
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Можно, нужно раскрашивать строки "под зебру" в 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;
Что-то ничего не изменилось))
Ответить с цитированием
  #7  
Старый 24.11.2017, 14:23
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Этот кусман был проверен на подопытной DBGrid - если не щёлкать по строчкам дибисетки, то они нормально "полосатятся", есть проблема в нарушении чётности при последующих манипуляциях, но видимо, решается это предварительным возвратом дефолтных значений кистей каждый раз перед прорисовкой колонок
Ответить с цитированием
  #8  
Старый 24.11.2017, 15:02
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Этот кусман был проверен на подопытной DBGrid - если не щёлкать по строчкам дибисетки, то они нормально "полосатятся", есть проблема в нарушении чётности при последующих манипуляциях, но видимо, решается это предварительным возвратом дефолтных значений кистей каждый раз перед прорисовкой колонок
хм... непонятно( я даже новый грид создал, и ничего не меняется(
Точнее все строки красятся в цвет который
Код:
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  
Старый 24.11.2017, 21:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот ещё вариант
Код:
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;
в D7 это работает, состояние flg определяет чётную/нечётную строку для расскраски
Ответить с цитированием
  #10  
Старый 27.11.2017, 11:24
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Вот ещё вариант
Код:
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;
в D7 это работает, состояние flg определяет чётную/нечётную строку для расскраски


Проверил оба кода работают на D7(( А на RAD Studio XE7 не хочет(((
Ответить с цитированием
  #11  
Старый 27.11.2017, 12:08
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Ekler1
Проверил оба кода работают на D7(( А на RAD Studio XE7 не хочет(((
А у меня кроме семёрки других делфей нет, извиняйте, значит в вашей среде другие правила покраски ячеек грида, мож кто ещё чего посоветует, удачи!
Ответить с цитированием
  #12  
Старый 28.11.2017, 00:28
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Используйте библиотеку Ehlib. Там раскраска ячеек делается элементарно. И не только чётный/нечётный, но и гораздо более замысловатая.

Последний раз редактировалось Guaho, 28.11.2017 в 00:39.
Ответить с цитированием
  #13  
Старый 28.11.2017, 09:55
Ekler1 Ekler1 вне форума
Новичок
 
Регистрация: 12.06.2017
Сообщения: 90
Версия Delphi: RAD Studio XE7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Guaho
Используйте библиотеку Ehlib. Там раскраска ячеек делается элементарно. И не только чётный/нечётный, но и гораздо более замысловатая.
У меня есть грид из библиотеки devexpress там такое действительно за минуту делается, просто не хотел переделывать все заново у меня не мало форм)) думал с обычным гридом получится
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter