Вниз
Скачать: CL | DM;

Как выделить текущую строку в DBGrid?   Найти похожие ветки 

 
ksa ©   (2003-04-11 13:40) [0]

Имеется DbGrig, хочется выделить текущую строку цветом, если установить свойство dgRowSelect, то если прокрутить сетку вправо и щелкнуть на ячейке, сетка автоматом прокручивается к первому столбцу.


 
Abrams ©   (2003-04-11 13:45) [1]

Обрабатываешь событие DBGridDrawColumnCell
и пишешь там что-нить в этом роде:

if gdSelected in state then
with DBGrid.Canvas do
begin
Font.Color := clYellow;
Brush.Color := clBlack;
end;
DBGrid.DefaultDrawDataCell(Rect, Column.Field, State);


 
ksa ©   (2003-04-12 08:45) [2]

Проблема как раз в том, что условие (gdSelected in state) выполняется только на текщей ячейке, а мне нужно выделить всю строку...


 
ЮЮ ©   (2003-04-12 09:34) [3]

Вариант1. В АfterScroll-e DataSet-а запоминать значение ключевого поля, а в DrawDataCell-e DBGrid-a сраниваем это значение со значением ключевого поля отрисовываемой записи


 
Шаман   (2003-04-12 10:42) [4]

А еще проще поставить InfoPower 3000, благо кряков под него тьма, и глазу приятно и по пустякам напрягатся нестоит.


 
Цук   (2003-04-12 10:44) [5]

Вариант ЮЮ не самый лучший т.к. прои нажатии Page Down или Page Up или при прокрутке колесиком мышки курсор переходит а полоса остается.


 
Alexandr ©   (2003-04-12 11:13) [6]

пользуйся на здоровье

type
THackDBGrid = class(TDBGridEh)
property DataLink;
property UpdateLock;
end;



procedure TForm1.MyGetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
var
Selected: Boolean;
begin
if INI1.currentLine then
begin
Selected := THackDBGrid(Sender).Datalink.Active and (THackDBGrid(sender).Row
- 1 = THackDBGrid(sender).Datalink.ActiveRecord);
if Selected then
begin
BackGround := INI1.FonCurrentLine;
end;
end;
end;



 
grusty ©   (2003-04-13 13:29) [7]

Abrams абсолютно прав. Единственное что - необходимо у DBGrid свойство Options/dgRowSelect установить в True. Тогда будет выделяться вся строка.
Другой вариант - это скачать библиотеку EhLib, где присутствует отличный компонент DBGridEh и у него обработать событие OnDrowColumnCell следующим образом:

if Rect.Top=DBGridEh2.CellRect(DBGridEh2.Col,DBGridEh2.Row).Top then DBGridEh2.Canvas.Brush.Color:=clAqua;
DBGridEh2.DefaultDrawColumnCell(Rect,DataCol,Column,State);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
4-837
Jakommo
2003-03-04 18:28
2003.05.01
(w2k) Как закрыть приложение по имени ехе в NT истемах.


6-668
Blacki
2003-03-06 00:26
2003.05.01
Проблемы с ФТП


14-673
sid
2003-04-12 00:58
2003.05.01
DBChart Парни помогите. Как открыть(показать) 2-ой график


14-689
aTeRm
2003-04-15 16:10
2003.05.01
Report?


3-377
xmrz
2003-04-14 18:00
2003.05.01
IB, FB или Yaffil?




   Наверх