![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Работаю в Delphi7,
на форме у меня стоит DBGrid, я хочу чтобы при переходе по его записям клавишами UP-DOWN выполнялась какая-нибудь процедура, к сожалению, событие CellClick DBGrid-а не реагирует на эти кнопки, как же мне это организовать. при переходе по его записям клавишами UP-DOWN - меняються только значения полей DBlabel, которые я сажаю на форму, но мне нужно еще и выполнение процедуры, Вообще-то помимо клавиш UP-DOWN, также удобно было бы пользоваться для тех же целей Enter-ом, одним словом , думаю проблема ясна.... прошу предложения, по-моему вполне нужная вещь при работе с данными. А то постоянно кликать мышью по записям, чтобы присходили желаемые мной расчеты над текущей записью - слишком неудобно!! |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Событие от TTable или TQuery - не знаю что там у тебя к гриду прикручено, AfterScroll, BeforeScroll
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Глобальный перехват нажатия клавиш в приложении
Типа хук ставить можно, но можно и проще: начинай просмотр событий с OnKeyDown... Удалено модератором Это сообщение отредактировал(а) Vit - 12.5.2004, 15:49 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Относительно AfterScroll & BeforScroll - я не раз натыкался на грабли. Я не помню точно, что я делал в событии AfterScroll, но мне пришлось переносить процедуру в события AfterPost, AfterDelete, по моему мне нужно было пробегаться по записям в таблице для подсчета общей суммы. А можно использовать еще один компонент, подключенный к той же таблице и обновлять его.
|
|||
|
||||
| nicka |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Странно, что события AfterScroll, BeforeScroll у TTable или TQuery , а не у грида...
Какая разница, ну добавлю еще один грид - причем тут реакция на UP-DOWN или Enter ?
я не нашла какой код key у клавиш UP-DOWN? А вот с Enter - это не пойдет, потому что пока надо заставить грид при нажатии Enter переходить на следующую запись, хотя наверно е это не сложно, используя .next???
|
||||||||||
|
|||||||||||
| gray_k |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: 3 Всего: 22 |
Кода клавишь есть: VK_UP, VK_DOWN. Смотри в хелпе "Virtual key codes";
При навигации в гриде у тебя происходит смена текущей позиции в НД, с которым этот грид связан. Кстати можно ещё использовать событие OnDataChange у компонента TDataSource, который связан с гридом.
В событии OnKeyDown грида пишешь:
При нажатии ENTER будет осуществлятся переход к следующей строке. -------------------- С уважением. Gray. |
||||||
|
|||||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Удалено модератором
Это сообщение отредактировал(а) Vit - 12.5.2004, 15:49 |
|||
|
||||
| nicka |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
|
||||
|
|||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
Удалено модератором
самый нормальный вариант для отработки смены записи - это Table1.OnAfterScroll; (см ответ Vit'а). Это сообщение отредактировал(а) Vit - 12.5.2004, 15:49 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Вариант Vit, конечно, самый первый и правильный....
Удалено модератором Это сообщение отредактировал(а) Vit - 12.5.2004, 15:48 |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
AfterScroll, BeforeScroll будут вызываться при любом переходе с одной строки грида на другую, не важно какими клавишами, мышаком или ещё чем это сделано. Модератор: прекратите разборки и флуд! для этого есть специальный раздел, действия модераторов обсуждаются там же. Это сообщение отредактировал(а) Vit - 12.5.2004, 15:51 -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Удалено модератором
Это сообщение отредактировал(а) Pegas - 13.5.2004, 01:02 |
|||
|
||||
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: 3 Всего: 22 |
В хелпе на вкладке "Поиск" набираешь VK_UP и ..... -------------------- С уважением. Gray. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
в редакторе свойств перейди на закладку событий и щелкни один раз на событии OnKeyDown и нажми F1
|
|||
|
||||
| nicka |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
- к сожалению не выходит. Во-первых AfterScroll - точно так же, как и с ONCellClick у грида реагирует только на щелкание мышью по записям, а на клавиши UP-DOWN - 0 книмания. А во вторых, почему то вообще никак не риагирует при выбирании последней записи в гриде. А BeforeScroll - вообще никак не реагирует.
не реагирует. Смотри в хелпе "Virtual key codes"; Да, посмотрела, все увидела только проблема такая, что код следующий твой
не работает , говорит Incompetible types, тогда ставлю VK_RETURN в кавычки, но в этом случае реакции никакой. В чем тут дело? Так, что пока проблема никак не решена... |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |