Главная страница
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.5 MB
Время: 0.015 c
1-8520
Переяслов Григорий
2003-10-24 16:44
2003.11.03
---|Ветка была без названия|---


3-8304
wtkiv
2003-10-13 15:09
2003.11.03
Как убрать логин и пароль?


3-8269
vidiv
2003-10-14 06:00
2003.11.03
Решение задач по FoxPro


14-8622
undert
2003-10-14 23:00
2003.11.03
Помогите


1-8434
Talla2k
2003-10-22 00:58
2003.11.03
поиск компонента