Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение цвета текущей строки DBGrid'a [D7]


Страницы:   1 2

Tex ©   (2006-12-18 09:21:00) 

Здравствуйте! В гриде RawSelect = False, AlwaysShowSelecton = True. По определенным причинам, могу использовать только RawSelect = false, но необходимо какое-то выделение текущей строки. Хотелось бы перекрашивать текущую строку в какой-то определенный цвет. Подскажите пожалуйста, как это реализовать. Если можно с кодом, заранее благодарен.


Tex   (2006-12-21 10:13:00) [1]

Ура!
Вот теперь, наконец-то, все работает отлично ))
Надеюсь эта ветка будет полезна людям!

Благодарю за помощь и внимание!


ЮЮ   (2006-12-21 09:52:00) [2]

вместо
not (gdFocused in State)
поставь
not (gdSelected in State)


Tex   (2006-12-21 09:16:00) [3]

включено, проверил


ЮЮ   (2006-12-21 09:12:00) [4]

возможно у грида не включено dgAlwaysShowSelection и при потере фокуса ячейка по умолчанию никак не выделяется цветом


Tex   (2006-12-21 09:06:00) [5]

Еще один вопросик )) Код из [21] замечательно работает, текущая строка подсвечивается. При щелчке мышкой по какой-либо ячейке происходит также, помимо выделения строки заданным цветом, стандартное выделение этой ячейки. Но, например, при сортировке сандартное выделение не видно - видна только подсвеченная строка. Подкажите как с этим справиться, нужно чтобы при любых действиях была видна также и текущая ячека.


Tex   (2006-12-21 08:37:00) [6]

Товарищи Мастера!
Благодарю за помощь (осбенно тов. Плохиша), со всем разобрался, все работает!
Всем огромное спасибо!!!


MsGuns   (2006-12-19 17:04:00) [7]

>Плохиш ©   (19.12.06 15:36) [29]
>При отключённых RowSelect и MultiSelect, будет закрашиваться только текущая выделенная ячейка.

Точно ;)


Плохиш   (2006-12-19 15:36:00) [8]


> MsGuns ©   (19.12.06 15:19) [28]

При отключённых RowSelect и MultiSelect, будет закрашиваться только текущая выделенная ячейка.


MsGuns   (2006-12-19 15:19:00) [9]

>ЮЮ ©   (19.12.06 12:17) [27]
>Ну конкретно, что из того что ты отписал в [17] поможет разукрасить все ячейки текущей записи?

dgSelected in State, Column по боку


ЮЮ   (2006-12-19 12:17:00) [10]


> MsGuns ©   (19.12.06 11:49) [26]

???

Ну конкретно, что из того что ты отписал в [17] поможет разукрасить все ячейки текущей записи?


MsGuns   (2006-12-19 11:49:00) [11]

>ЮЮ ©   (19.12.06 02:53) [23]
>Тем только, что [17] никак не поможет решить subj-евую проблему. Причем из-за причин в [18].

???


Плохиш   (2006-12-19 11:20:00) [12]


> evvcom ©   (19.12.06 08:34) [24]
> > [13] Плохиш ©   (18.12.06 11:14)
>
> Ух, ты! Где это немецкий хелп раздобыл?

В делфи ;-)


evvcom   (2006-12-19 08:34:00) [13]

> [13] Плохиш ©   (18.12.06 11:14)

Ух, ты! Где это немецкий хелп раздобыл? :)


ЮЮ   (2006-12-19 02:53:00) [14]

Тем только, что [17] никак не поможет решить subj-евую проблему. Причем из-за причин в [18].


MsGuns   (2006-12-18 14:23:00) [15]

>ЮЮ ©   (18.12.06 11:59) [18]
>1) Только один Column имеет gdSelected, а красить нужно всю строку.
>2) в DrawDataCell "текущей" записью DataSet-а является именно рисуемая, а не настоящая текущая.

А в чем [17] противоречит обоим пунктам ?


Плохиш   (2006-12-18 13:30:00) [16]


> Tex   (18.12.06 11:30) [15]


...
 type
   TDummyGrid = class(TDBGrid)
   end;
...
procedure TfrmMain.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 with TDummyGrid(Sender) do
 begin
   if (DataLink.ActiveRecord = Row-1) and not (gdFocused in State) then
   begin
     Canvas.Brush.Color := clYellow;
     Canvas.Font.Color := Font.Color;
   end;
   DefaultDrawColumnCell(Rect, DataCol, Column, State);
 end;
end;


Павел Калугин   (2006-12-18 12:45:00) [17]

Изложенно с примерами, разобраны фрагменты кода.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=170
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1193


Anatoly Podgoretsky   (2006-12-18 12:42:00) [18]

> Tex  (18.12.2006 9:51:04)  [4]

Зачем еще какие то примеры, когда там самые подробные, если те не понял и примеры из справки, то давать еще какие то нет смысла.


ЮЮ   (2006-12-18 11:59:00) [19]


> MsGuns ©   (18.12.06 11:51) [17]

1) Только один Column имеет gdSelected, а красить нужно всю строку.
2) в DrawDataCell "текущей" записью DataSet-а является именно рисуемая, а не настоящая текущая.


MsGuns   (2006-12-18 11:51:00) [20]

В списке параметров обработчика есть State и Column - в зависимости от их значений присваиается нужный цвет фона и фонта ТЕКУЩЕЙ ячейки, а прорисовывается методом DefaultDrawColumnCell.
На этом компе нет проектов поэтому код привести не могу, но, как правильно тут было сказано, на Королевстве естиь венликолепная статья с примерами - возьмите ее в качестве учебного пособия


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо