![]() |
|
![]() ![]() ![]() |
|
Palladin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
АЦЦКАЙ ПОИСК В статье BCB6+ADO был приведен поиск, который работает корректно, но как всегда есть НО, во первых тот поиск убирает все неподходящие записи, во вторых ошибись ты хотя бы на один символ и не найдешь то что надо, а если оно будет совсем рядом ты этого не увидешь! На днях увидел поиск в программе Галактика, это что-то типа 1С, там при клике по аналогу DBGrid-a появляется аналог компонента Edit в него заносится информация из ячейки по которой кликнули, после изменения данных в Edit-e, указатель по таблице прогоняется к нужной записи, а вместе с ним и Edit, чуть выше записи! Очень удобно, к примеру ищем мы инвентарный номер в таблице в которой в поле "инвентарный номер" более 5000 записей, указатель подгоняется все ближе и ближе и вы всегда можете немного изменить искомые данные! Итак приступаем: Будем считать что Ваша БД уже сделана, вы сделали добавление и т.д. приступаем к поиску! Кидаем на форму Edit1, уменьшаем его габариты ну скажем 75 на 17, далее устанавливем размер шрифта вводимого в Edit до 6. Прячем(Visible=false;) Кидаем на форму DBEdit1, прячем, конектим к искомому полю. будем считать что поле "инвентарный номер" это у вас первый столбец, тогда на OnCellClick компонента DBGridпишем код:
Далее на onKeyDown Edit-a пишем код:
Подсветим найденную, тогда в onDrawColumnCel l DBGrid-a пишем код:
Вот и все, код кривоват, есть пару недоработак, таких как мерцание, ну и может еще что Надеюсь комунить пригодится, критика принимается, отладка кода тоже, заранее спс Спасибо Rrader-y он сам того не зная помог в этом деле ![]() 16.06.2008 подправил поиск, чтобы улучшить работу этого поиска с OnChange Edita обработку перекинул на OnKeyDown, при нажатии на Enter пойдет поиск ![]() Это сообщение отредактировал(а) Palladin - 6.7.2008, 23:59 -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
||||||
|
|||||||
Bugmaker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
У меня пример не откомпилировался в билдере пока я не написал Key вместо key.
|
|||
|
||||
Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Исправил
![]() -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |