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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2012, 11:01   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию DBGridEh, STFilter & Focus

Привет коллеги.
Есть DBGridEh, в нем есть STFilter (это такие выпадающие комбобоксы под заголовками, если кто не помнит). В STFilter ввожу текст фильтра, нажимаю Enter, получаю нужную запись. Далее мне нужно еще раз нажать Enter, чтобы открылась другая форма,
Код:
if key = 13 then form.showmodal
но чертов фокус остается в фильтре и событие DBGridKeyDown не срабатывает. Приходится мышью кликать по сетке DBGrid-а, чтобы сначала передать фокус на запись хотя курсор на записи уже стоит, но фокуса нет.

DBGrid.SetFocus не сработает, т.к. фокус уже находится внутри Грида (т.е. в фильтре).
Где копать?
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.08.2012, 11:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А установка SelectedIndex или SelectedField не помогает?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.08.2012, 11:56   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Не-а. Ничего не работает. Хотел обмануть фокус и передать фокус сначала в другой контрол, о потом вернуть в грид
Код:
Edit1.SetFocus;
DBGrid.SetFocus
но, если до этого фокус был в фильтре, то и возвращает его назад в фильтр.
Безобразие...
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.08.2012, 12:03   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Покопаться в исходниках EhLib, может и можно концы найти
2. Симитировать клик мыши на нужной строке грида
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.08.2012, 14:34   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Эх, если уж писать идиотский код, то по полной программе.
Вот так работает.
Код:
DBGrid.STFilter.Visible:=False;
DBGrid.SetFocus;
DBGrid.STFilter.Visible:=True;
Ну, и черт с ним. Работает и ладно...
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.08.2012, 21:02   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а со свойством DBGridEh.OnApplyFilter не пробовал поиграться?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Cannot focus a disabled or invisible window. sedoq Общие вопросы Delphi 3 01.02.2012 07:45
JQuery форма focus gunsoy JavaScript, Ajax 3 15.11.2011 20:49
TDBGridEh + STFilter Как сделать что бы работало? Jenya Компоненты Delphi 2 24.02.2009 06:02
при помощи метода focus(): запрограммировать прокручивание текста в основной линейке Дмитрий223 JavaScript, Ajax 1 02.12.2008 19:02
DBGridEh STFilter ошибка. Александр А. БД в Delphi 0 13.12.2006 15:09