Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 14:08   #1
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию как узнать что в DBGrideh выделенная последняя строка.

Здравствуйте.
Подскажите пожалуйста как узнать что в DBGrideh выделенная последняя строка.
а то есть если edit1.text=последней строки dbgrideh то
scroyler вне форума Ответить с цитированием
Старый 14.02.2012, 14:58   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
DBGrideh.DataSource.DataSet.RecNo=DBGrideh.DataSource.DataSet.RecordCount
это при условии, что RecNo начинается с 1. Не помню точно. Если с 0, то
Код:
DBGrideh.DataSource.DataSet.RecNo=DBGrideh.DataSource.DataSet.RecordCount-1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.02.2012, 15:03   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Аватар, +1

можно "повеситься" на событие датасета и проверять, какая запись активна, если активная последная запись - значит в DBGridEh выделена последняя строка. (смотри пост #2)

кстати, насколько я помню, есть такое понятие в DBGridEh - [MultiSelect]
так если "выделенная" строка имеется в виду именно в таком смылсе выделенная, а не текущая - тогда нужен другой подход - смотрите в сторону SelectedRows
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 15:04   #4
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы цеплялся на событие датасета и проверял, какая запись активна, если активная последная запись - значит в DBGridEh выделена последняя строка.

кстати, насколько я помню, есть такое понятие в DBGridEh - [MultiSelect]
так если "выделенная" строка имеется в виду именно в таком смылсе выделенная, а не текущая - тогда нужен другой подход - смотрите в сторону SelectedRows
именно активная. можно код?

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
DBGrideh.DataSource.DataSet.RecNo=DBGrideh.DataSource.DataSet.RecordCount
это при условии, что RecNo начинается с 1. Не помню точно. Если с 0, то
Код:
DBGrideh.DataSource.DataSet.RecNo=DBGrideh.DataSource.DataSet.RecordCount-1
все пашет,спасибо)
нужно 0)

скажите плз, а как сделать так же только последняя с галочкой?

Последний раз редактировалось Stilet; 16.02.2012 в 08:08.
scroyler вне форума Ответить с цитированием
Старый 14.02.2012, 21:14   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от scroyler Посмотреть сообщение
только последняя с галочкой?
Что такое галочка?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.02.2012, 21:26   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Что такое галочка?
Это boolean-поле.
DBGridEh автоматом вставляет в это поле CheckBox-ы.
По-русски называется "Галочка"
_SERGEYX_ вне форума Ответить с цитированием
Старый 14.02.2012, 21:28   #7
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

ага,это точно))
scroyler вне форума Ответить с цитированием
Старый 14.02.2012, 21:35   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Это boolean-поле
Не дошло сразу, но и сейчас не совсем уверен. Но если так, то перебором от конца DataSet к началу пока не встретится нужная запись. Locate не поможет, индексный поиск тоже. В Datasource перед перебором Active в False и запомнить RecNo DataSet-а. Найденное RecNo (если найдена такая запись) сравнить с запомненным. Восстановить RecNo и Active в True. Это имеет смысл если операция разовая. Если при навигации по гриду постоянно нужна такая инфа, то лучше признак какой-то в записи держать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 14.02.2012 в 21:45.
Аватар вне форума Ответить с цитированием
Старый 15.02.2012, 04:24   #9
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Это, извините но полный пизнес..
Цитата:
Код:
DBGrideh.DataSource.DataSet.RecNo=DBGrideh.DataSource.DataSet.RecordCount-1
Код:
DBGrideh.DataSource.DataSet.Last
Сделает тоже самое...
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 15.02.2012, 07:25   #10
scroyler
Форумчанин
 
Регистрация: 02.08.2011
Сообщений: 142
По умолчанию

а как это сделать?
scroyler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать что строка является корневым узлом группы rdama Microsoft Office Excel 3 11.10.2010 03:00
Как узнать равна ли последняя строка 2 страницы документа знаку Enter Jaroslav Microsoft Office Word 1 13.08.2010 20:53
Дописать функцию последняя строка kipish_lp Microsoft Office Excel 5 05.07.2010 07:12
последняя строка 0mega Microsoft Office Excel 4 02.06.2010 22:07
макрос замена значений последняя не занятая строка marc-nikita Microsoft Office Excel 2 07.02.2010 12:25