![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение цвета текущей строки DBGrid'a [D7]
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.
На этом компе нет проектов поэтому код привести не могу, но, как правильно тут было сказано, на Королевстве естиь венликолепная статья с примерами - возьмите ее в качестве учебного пособия