![]() |
|
|
![]()
|
|
| Hatigatsu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.10.2006 Где: г. Н.Новгород Репутация: нет Всего: нет |
Здравствуйте. Помогите решить вот такой вопрос:
У меня есть DBGrid1 с одним полем, как узнать значение ячейки в этом поле на которую наводится стрелочка чёрная с лева треугольная (родная стрелочка DBGrid'а). Очень нужно. |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
обратись к Table или Query, которые связаны с этим гридом через св ва:
Table1.FieldByName('Название поля').Asstring - здесь будет лежать текущее значение поля, то же самое для Query. Это сообщение отредактировал(а) Insert - 12.12.2006, 12:18 --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| x77 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
таблицы (TTable) и запросы (TQuery), когда они активны, в любой момент времени "указывают" на одну запись. запись состоит из полей, и получить значения этих полей, как уже было сказано, можно свойством Fields [n].Value, где n - порядковый номер поля в записи (индексация с нуля). также имеют право на жизнь обращения через FieldByName (FieldName).Value, которые позволяют обратиться к полю по его имени. что же касается грида, то у него есть свойство SelectedField, которое возвращает поле, на котором в данный момент находится фокус грида. т.е. для того, чтобы обратиться к выделенному в игрде полю, нужно написать
это общий случай. как правило, можно решить проще: Table1.FieldByName (DbGrid1.SelectedField.FieldName).Value. а вот что касается "треугольной стрелочки", то она указывает не на поле, а на запись. если бы у вас было 100 полей, эта "стрелочка" всё равно бы находилась всегда слева от самого первого поля. поэтому в вашем случае, при таблице из одного поля, обратиться к этому полю текущей записи можно ещё проще:
Это сообщение отредактировал(а) x77 - 12.12.2006, 16:22 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
||||
|
|||||
| Hatigatsu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.10.2006 Где: г. Н.Новгород Репутация: нет Всего: нет |
x77, Insert, Большое Спасибо. Попробую.
|
|||
|
||||
| Hatigatsu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.10.2006 Где: г. Н.Новгород Репутация: нет Всего: нет |
Всё работает замечательно. Но вот такое дело. Я в событии onChange у Edit ' a использую ADOQuery1.Locate(Fields,Edit.text,[loPartialKey]). Как видно при совпадении первых букв текста с имеющимися в Базе словами, стрелочка в DBGrid наводится на похожее слово. В общем, как мне отследить куда навелась стрелочка (не знаю как это ещё выразить), и взять текст из ячейки.
Пробовал с помощью DataSource2DataChange всё прекрасно, о большем и мечтать не стоит, но вот если тышнешь на какую-нибудь ячейку и зажмешь стрелку вниз, при прокручивании, верхние ячейки копируют ячейку на которую нажал. |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
если твоя функция ADOQuery1.Locate(Fields,Edit.text,[loPartialKey]) вернет true, то значит что она нашла что то, эта функция сразу делает найденную запись активной и считать из неё значение можно с помощью все тех же процедур, о которых говорилось выше.
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Hatigatsu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.10.2006 Где: г. Н.Новгород Репутация: нет Всего: нет |
x77, Insert, СпасиБо ещё раз. Получается, как вы и сказали.
Отдельное спасибо за
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |