Форум: "Базы";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизКАк определить номер ... при прорисовывании в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c