![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цветные строки в DBGrid.
Kolan © (2007-08-01 15:55:00)Мне нужно раскрасить нечет. строки. Трудность в том как кзнать что тек строка нечётная
1. По RecNo?
Попадаются так, что подряд идут две нечётных строки :(
2. Думал что победил проблему так:
var
Coords: TGridCoord;
begin
if Sender is TDBGridEh then
with Sender as TDBGridEh do
begin
Coords := MouseCoord(Rect.Left, Rect.Top);
if gdSelected in State then
Canvas.Brush.Color := clHighlight
else
begin
if Odd(Coords.Y) then
begin
Canvas.Brush.Color := $00EEEEEE;
end
else
Canvas.Brush.Color := clWindow;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
Однако в этом случае Coords.Y = 1 будет не у первой из всех отображенных, а у верхней видимой.
То есть если строк 100.А окно маленькое и чел видит 2-20, то верхняя строка, на самом деле вторая по счёту, будет первой и ессно все испортится :(
Как его раскарасить правильно ?
Плохиш (2007-08-01 17:13:00) [1]
> if Odd(TFakeGrid(Sender).DataLink.ActiveRecord) then
Для первой видимой строки ActiveRecord всегда равен нулю, поэтому при скроллинге перемещается только содержимое строк, но не закраска.
Kolan (2007-08-01 16:45:00) [2]Блин, наврал. Просто там код не полный был, а я подумал, что это все что надо.
Так:
procedure TMainForm.StationaryDBGridEhDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if Sender is TDBGridEh then
begin
if Odd(TFakeGrid(Sender).DataLink.ActiveRecord) then
(Sender as TDBGridEh).Canvas.Brush.Color := $00EEEEEE
else
TDBGrid(Sender).Canvas.Brush.Color := clWindow;
(Sender as TDBGridEh).DefaultDrawColumnCell(Rect, DataCol, Column,
State);
end;
end;
Вроде нормально :)
Kolan (2007-08-01 16:40:00) [3]Поспешил :(
if TFakeGrid(Sender).DataLink.ActiveRecord and 1 0 then
TDBGrid(Sender).Canvas.Brush.Color:=$00EEEEEE;
Неработает. ActiveRecord странные значения принимает
Kolan (2007-08-01 16:31:00) [4]> статью «полосатый грид» на delphikingdom.ru читал?
Млин че я не догался сам. Читал ведь про ActiveRecord.
Благодарю :)
clickmaker (2007-08-01 16:00:00) [5]статью "полосатый грид" на delphikingdom.ru читал?