Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.21;
Скачать: CL | DM;

Вниз

Получить значение поля предидущей записи в DBGrid   Найти похожие ветки 

 
webpauk ©   (2009-12-21 15:37) [0]

Хочу раскрасить DBGrid в соответствии со значением поля IDObject
База отсортирована по полю IDObject
Как получить значение IDObject для предидущей строки?

текущую вроде бы можно получить через TDBGrid(Sender).DataSource.DataSet.FieldByName("IDObject").AsInteger


 
webpauk ©   (2009-12-21 15:39) [1]

имеется в виду метод:
procedure TForm.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);


 
Юрий Зотов ©   (2009-12-21 16:35) [2]

В DBGrid нет ни предыдущей, ни текущей, ни следующей записи. Они есть в DataSet"е. Получаются методами Prev и Next. Причем зависят от запроса и способа его сортировки.


 
Sergey13 ©   (2009-12-21 16:39) [3]

> [0] webpauk ©   (21.12.09 15:37)

Поищи на королевстве статью "Полосатый грид".


 
Германн ©   (2009-12-21 16:45) [4]


> имеется в виду метод:
> procedure TForm.DBGridDrawColumnCell

Для такого рисования достаточно знать только текущую.


 
Ega23 ©   (2009-12-21 17:00) [5]


> Хочу раскрасить DBGrid в соответствии со значением поля
> IDObject


Ну и нафига тебе тогда "предыдущее" значение? Есть текущее - в соответствии с ним и крась.


 
webpauk ©   (2009-12-22 09:39) [6]


> Ega23 ©   (21.12.09 17:00) [5]
>


скажем, нужно раскрасить все записи 2 цветами, причем все с одинаковым IDObject - одним цветом. Не зная предыдущего значения - не знаю каким цветом закрашивать...


 
Медвежонок Пятачок ©   (2009-12-22 09:46) [7]

причем все с одинаковым IDObject - одним цветом. Не зная предыдущего значения - не знаю каким цветом закрашивать...

какая жуть .....
а значение пред-предыдущего знать не надо? а его предшественника?
а остальных?


 
zorik ©   (2009-12-22 09:47) [8]

Предварительно создать массив (список) типа record(idobject, color). Заполнить его отношениями какому id какой цвет отвечает. При закраске грида искать в массиве (списке) нужный цвет


 
zorik ©   (2009-12-22 09:50) [9]


> кажем, нужно раскрасить все записи 2 цветами, причем все
> с одинаковым IDObject - одним цветом. Не зная предыдущего
> значения - не знаю каким цветом закрашивать...


Нужно ВСЕ записи с одинаковым IDObject или если записи с одинаковым IDObject идут ПОДРЯД.

Возможно отсортировано по IDObject?


 
webpauk ©   (2009-12-22 11:17) [10]

O!

const
 cColorArr: array[Boolean] of TColor = (clYellow, clMoneyGreen);
type
 TForm1 = class(TForm)
   Grid1: TDBGrid;

   procedure FormCreate(Sender: TObject);
   procedure Grid1GridDrawColumnCell(Sender: TObject;
     const Rect: TRect; DataCol: Integer; Column: TColumn;
     State: TGridDrawState);
 private
   fCurrentColor: Boolean;
   fCurrentIDObject: Integer;
 end;

...

procedure TCommon_Main.PanelGrid1GridDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 if TDBGrid(Sender).DataSource.DataSet.FieldByName("IDObject").AsInteger<>fCurrentID Object then
 begin
   fCurrentColor:=not fCurrentColor;
   fCurrentIDObject:=TDBGrid(Sender).DataSource.DataSet.FieldByName("IDObject").AsI nteger;
 end;

 TDBGrid(Sender).Canvas.Brush.Color:=cColorArr[fCurrentColor];

 TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;



 
Медвежонок Пятачок ©   (2009-12-22 11:20) [11]

только никому больше не показывай.


 
webpauk ©   (2009-12-22 11:21) [12]

мля... работает тока при первой отрисовке... 8(


 
Медвежонок Пятачок ©   (2009-12-22 11:22) [13]

блокируй клаву после первой отрисовки.
чтобы юзер не портил картину


 
webpauk ©   (2009-12-22 11:37) [14]


> Медвежонок Пятачок ©   (22.12.09 11:22) [13]
>

точно! как я ни дагадалси!
а еще лучше, чтобы взрывался монитор и юзеру рвало голову нафиг!


 
webpauk ©   (2009-12-22 11:38) [15]


> zorik ©   (22.12.09 09:47) [8]
>


пошел через этот путь. работаеит!


 
Германн ©   (2009-12-22 11:42) [16]


> webpauk ©   (22.12.09 11:17) [10]

Похожий бред я уже на форуме видел. :)



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

Текущий архив: 2010.02.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1260394219
Юрий
2009-12-10 00:30
2010.02.21
С днем рождения ! 10 декабря 2009 четверг


2-1261143805
TStas
2009-12-18 16:43
2010.02.21
Ошибка создания MDI формы


1-1238011378
AssemblerIA64
2009-03-25 23:02
2010.02.21
Длинное деление: проблема с остатком


2-1261130070
pg81
2009-12-18 12:54
2010.02.21
Как проверить существет ли еще форма в frm:TMyTypeForm?


15-1260542319
TUser
2009-12-11 17:38
2010.02.21
Видеокарту никому не надо?