Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-8472
Mishenka
2003-10-23 18:39
2003.11.03
Как распечатать на принтере содержимое Memo?


4-8706
SkyN
2003-09-01 13:01
2003.11.03
hook на нажатие клавишь, ошибка


7-8696
Карелин Артем
2003-08-22 11:19
2003.11.03
Работа компонента внутри потока.


1-8368
Stepasha
2003-10-22 23:33
2003.11.03
Графика


1-8383
Igit
2003-10-22 16:51
2003.11.03
FileToStream в Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский