Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];

Вниз

Получить значение поля предидущей записи в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
2-1260506010
Б
2009-12-11 07:33
2010.02.21
Изменение стиля и позиции окна при разных видеорежимах.


2-1261399078
webpauk
2009-12-21 15:37
2010.02.21
Получить значение поля предидущей записи в DBGrid


15-1260480620
Юрий
2009-12-11 00:30
2010.02.21
С днем рождения ! 11 декабря 2009 пятница


15-1260806036
{RASkov}
2009-12-14 18:53
2010.02.21
3G Modem


6-1212496216
TForumHelp
2008-06-03 16:30
2010.02.21
DC++





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский