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

Вниз

КАк определить номер ... при прорисовывании в DBGrid   Найти похожие ветки 

 
Vadim S   (2003-10-13 14:02) [0]

Как в событии

procedure TXX.dbgDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

определить порядковый номер ПРОРИСОВЫВАЕМОЙ записи.


 
Stas ©   (2003-10-13 14:05) [1]

на событие: procedure TXX.dbgDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

I:=i+1
где I глобальная переменная


 
stone ©   (2003-10-13 14:06) [2]

Если речь о RecNo, тогда
Column.Grid.DataSource.DataSet.RecNo


 
Vlad ©   (2003-10-13 14:07) [3]

У прорисовываемой записи НЕТ порядкового номера.
Есть ключевые поля в DataSet"e. По ним и определяй.
Stas © (13.10.03 14:05) [1]
Да, только это число даст тебе произведение столбцов и строк.
Тем более, что ее нужно будет обнулять при каждой перерисовке грида.


 
Vadim S   (2003-10-13 14:08) [4]

ПРОРИСОВЫВАЕМОЙ записи,
а не той на которой стоит курсор!!!


 
NAlexey ©   (2003-10-13 14:09) [5]

>I:=i+1
>где I глобальная переменная
Всетаки не стоит так делать...


 
Stas ©   (2003-10-13 14:13) [6]

Vlad © (13.10.03 14:07) [3]

Точно...
Vadim S (13.10.03 14:08) [4]
Курсор всегда становится на прорисовываемую запись.


 
stone ©   (2003-10-13 14:16) [7]


> ПРОРИСОВЫВАЕМОЙ записи,
> а не той на которой стоит курсор!!!


Специально проверил, работает

if Column.Index = 0 then
Memo1.Lines.Add(IntToStr(Column.Grid.DataSource.DataSet.RecNo))


 
MsGuns ©   (2003-10-13 14:24) [8]

Если надо обратиться к текущей записи датасета, то RecNo датасета (TQuery/TTable,...), если надо обратиться к записи, соответствующей прорисовываемой в данной момент в гриде, то к TDBGrid.DataSource.DataSet.RecNo. Кстати, таким же манером можно "располосатить" грид, т.е. окрасить строки в зависимости от значения некоторого поля НД.


 
Vlad ©   (2003-10-13 14:38) [9]

RecNo не всегда возвращает то что нужно. Эту тему тут уже с десяток раз поднимали за последнюю неделю.


 
DenK_vrtz ©   (2003-10-13 14:54) [10]

Я одного не пойму, а на фига все это при прорисовке?!


 
Vadim S   (2003-10-13 14:55) [11]

>RecNo не всегда возвращает то что нужно. Эту тему тут уже с >десяток раз поднимали за последнюю неделю.

Т.е. решения нет? Или как?


 
MsGuns ©   (2003-10-13 15:57) [12]

Для абстрактной проблемы и решение абстрактное. Почитай внимательно свой сабж - что есть порядковый номер прорисовываемой записи ? Номер относительно чего ?
- Видимой части сетки ?
- Курсора НД
- Содержимого буфера
- Таблицы БД по первичным ключам
- Третьего дерева за четвертым поворотом пятой дороги ?


 
Vadim S   (2003-10-13 17:13) [13]

Нужен номер относительно первой записи в данном ДБГриде.
Не видимый а абсолютный (в данной выборке).


 
MsGuns ©   (2003-10-13 17:54) [14]

В какой-то мере может помочь FetchAll после открытия с последующим обращением при перерисовке к RecNo так, как это было уже не раз описано выше (через грид->сорс->НД)

И запомни - в гриде нет записей, более того, он ничего не знает ни об их кол-ве, ни о источнике. Для получения информации к рисованию (а именно для этого гриды и служат) он юзает TDataSource.

Резюме - читай хэлпы.



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
3-8259
Denisiy
2003-10-14 12:47
2003.11.03
Авторазмер столбцов в DBGrid - бывает?


3-8323
gray_hagen
2003-10-10 18:56
2003.11.03
Псевдоним


1-8353
P0tia
2003-10-22 17:04
2003.11.03
Как программно загрузить форму


3-8331
bav
2003-10-12 11:11
2003.11.03
Русский HELP к Apollo 5.0


1-8402
Марат
2003-10-22 15:46
2003.11.03
Amoeba