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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2011, 09:58   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
Вопрос Программное нажатие 3-х клавиш

Добрый день! Мне программно нужно, нажав на Button1, установить курсор на любой ячейке DBGrid и выполнить программное нажатие трех клавиш (Ctrl+F+F). Как и с помощью чего это можно сделать? Заранее спасибо.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.09.2011, 10:49   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
keybd_event(vk_control, 0, 0, 0);
keybd_event(ord('F'), 0, 0, 0);
keybd_event(ord('S'), 0, 0, 0);

keybd_event(ord('S'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(ord('F'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(vk_control, 0, KEYEVENTF_KEYUP, 0);
Цитата:
Ctrl+F+F
еще одна F - это что? Может речь не о трех клавишах, а о двух <Ctrl>+<F>, а уже потом еще одно нажатие <F>?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 18.09.2011, 11:14   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и выполнить программное нажатие трех клавиш (Ctrl+F+F)
Как я понимаю программа не твоя.
Иначе бы не было смысла в таком геморрое
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2011, 11:35   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Неправильно поняли меня. Объясняю подробнее. В компоненте DBGridEh при нажатии Ctrl+F+F появляется диалоговое окно с поиском. Мне нужно вызвать его нажатием на кнопку (Button1). При однократном нажатии Ctrl+F активируется возможность инкрементого поиска по столбцу. Если нажать Ctrl+F и не отпуская Ctl нажать еще раз F то появится то самое окно. У кого есть возможность проверить - проверьте то, что я говорю и поймете о чем я.
Цитата:
Как я понимаю программа не твоя
Неверно. Программа моя.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.09.2011, 12:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В компоненте DBGridEh при нажатии Ctrl+F+F появляется диалоговое окно с поиском.
Прими мои соболезнования... Неужели нет никаких методов в VCL Этой библиотеки чтоб вызвать это окно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2011, 17:12   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Вот, в одном из модулей этого компонента нашел следующий код (может это и есть функция вызова диалога поиска):
Код:
procedure ExecuteDBGridEhFindDialog(Grid: TCustomDbGridEh; Text, FieldName: String;
  ColumnFields: TColumnFieldsArrEh;  Modal: Boolean);
begin
  if not Assigned(DBGridEhFindDlg) then
    DBGridEhFindDlg := TDBGridEhFindDlg.Create(Application);
  DBGridEhFindDlg.Execute(Grid, Text, FieldName, ColumnFields, Modal);
end;
Как теперь ее вызвать в программе? Располагается в модуле DBGridEhFindDlgs
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.09.2011, 17:23   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а ну так теперь тее стоит поискать свойство FindDialog среди набора свойств грида. Кинешь на форму свой FindDialog из вкладки Dialogs, и вызовешь его методом execute
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2011, 17:26   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

У него нет такого свойства
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.09.2011, 17:30   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Зашибись
Фтопку може эту либу дурную?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2011, 17:39   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Нет, не в топку. Но мне нужно решить как-то этот вопрос.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программное нажатие кнопки в TWebBrowser RIO Работа с сетью в Delphi 3 16.07.2011 22:27
Программное нажатие клавиши в чужом приложении Der_G()RuNu(h Работа с сетью в Delphi 33 10.07.2011 18:57
[Flash/Action Script] Программное нажатие кнопки Рамик Помощь студентам 1 14.12.2010 23:42
Программное нажатие клавиш Damien4Damien Общие вопросы Delphi 2 17.10.2010 16:26
Не срабатывает программное нажатие кнопки в чужом окне alxsev Общие вопросы Delphi 3 29.01.2009 20:32