powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Горячие клавиши для поиска
17 сообщений из 17, страница 1 из 1
Горячие клавиши для поиска
    #33081614
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Други!
Подскажите, как сделать по горячей клавише Ctrl+F вызов формы в Grid?
(в форме - поле ввода для строки поиска)
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33081853
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы рекомендовал "горячую" клавишу обрабатывать не в GRID, а в форме, где GRID находится.
Например так:
Метод KeyPress формы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcName

m.lcName = IIF(TYPE("THISFORM.ActiveControl") == "O", UPPER(THISFORM.ActiveControl.Name), "")
DO CASE
   CASE (m.nKeyCode =  6 ) AND (m.nShiftAltCtrl =  2 ) AND (m.lcName == "GRIDNAME")
      THISFORM.YourFindMethod()   && Твой метод поиска
   CASE ....

   OTHERWISE
      DODEFAULT(m.nKeyCode, m.nShiftAltCtrl)
ENDCASE
С уважением, Алексей.
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33081981
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую!
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082146
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А nkeycode = 6 - это точно для Ctrl+F?
Что-то не цепляет...
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082157
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyzА nkeycode = 6 - это точно для Ctrl+F?
Что-то не цепляет...
Точно, но надо не забыть установить в форме свойство KeyPreview = .T., что бы форма первая обрабатывала событие KeyPress и , разумеется, вместо GRIDNAME, подставить имя своего объекта GRID (большими буквами)
С уважением, Алексей.
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082195
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082592
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно а вот у меня CTRL+F никак не отлавливается
(VFP 6-9 ) и никогда не отлавливались -
зарезервированная комбинация меню
зы приходилось через on key label ctrl+f do poisk
выкручиваться хотя и не красиво это
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082729
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась проблема!

До вставки поиска по Ctrl+F прекрасно работали комбинации вставки в буфер содержимого строки.
После добавки в алгоритм Ctrl+F он работает, а вставка в буфер Ctrl+C выдает ошибку неизвестный метод SELTEXT.
Причем, даже если я закомментариваю эту опцию (Ctrl+F).



Вот текст свойства формы:


LPARAMETERS nKeyCode, nShiftAltCtrl

dO CASE
CASE nkeycode=13
THIS.DBLCLICK

CASE nkeycode = 3 AND nshiftaltctrl = 2 && Ctrl+C
_CLIPTEXT =ALLTRIM(THIS.SELTEXT)

CASE nkeycode = 22 AND nshiftaltctrl = 2 && Ctrl+V

THIS.SELTEXT = _CLIPTEXT
THISFORM.REFRESH

CASE nkeycode = 24 AND nshiftaltctrl = 2 && Ctrl+X
_CLIPTEXT =ALLTRIM(THIS.SELTEXT)

THISFORM.REFRESH

CASE nKeyCode = 6 AND nShiftAltCtrl = 2 && Ctrl+F
DO FORM searchp

THISFORM.refresh


ENDCASE
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082933
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Желательно, после вызова метода в KeyPress формы, я добавляю NODEFAULT:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcName

m.lcName = IIF(TYPE("THISFORM.ActiveControl") == "O", UPPER(THISFORM.ActiveControl.Name), "")
DO CASE
   CASE (m.nKeyCode =  6 ) AND (m.nShiftAltCtrl =  2 ) AND (m.lcName == "GRIDNAME")
      THISFORM.YourFindMethod()   && Твой метод поиска
      NODEFAULT
   CASE ....

   OTHERWISE
      DODEFAULT(m.nKeyCode, m.nShiftAltCtrl)
ENDCASE
С уважением, Алексей.
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33082934
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорстранно а вот у меня CTRL+F никак не отлавливается
(VFP 6-9 ) и никогда не отлавливались -
зарезервированная комбинация меню
зы приходилось через on key label ctrl+f do poisk
выкручиваться хотя и не красиво это
Это может быть, если у вас в главном меню приложения определена "горячая" клавиша Ctrl+F. Фактически, вы выдали команду ON KEY LABEL CTRL+F ....
С уважением, Алексей.
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083279
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята!
А код для комбинации Ctrl+P ?

И вообще, что бы не дергать по этому вопросу никого - где их можно надыбить?
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083289
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянь справку по функции INKEY( ). Там есть таблица
С уважением, Алексей.
P.S. Код для Ctrl+P = 16
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083293
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в справке по INKEY(), второй вариант воткнуть в keypress после строки параметров что-то навроде
WAIT WINDOW nKeyCode NOWAIT
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083351
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CASE nkeycode = 3 AND nshiftaltctrl = 2 && Ctrl+C
_CLIPTEXT =ALLTRIM(THIS.SELTEXT
)

CASE nkeycode = 22 AND nshiftaltctrl = 2 && Ctrl+V

THIS.SELTEXT = _CLIPTEXT
THISFORM.REFRESH

Где же собака порылась
наверное перенос текста был из модуля в модуль
1 Проверить наличие свойства или метода SELTEXT у формы
2 Не кажеться что подчеркнутое выглядит странновато в свете последних событий SELTEXT ведь был перенос арены действий на форму? или не так
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083741
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что правда - то правда!
Слово THIS. - вообще опасное, можно угодить, куда не следует :). Лучше уж всегда писать полный "адрес" объекта, хотя бы начиная его с THISFORM. - кроме , конечно, случая, когда оно уже указано в программных скобках:
WITH thisform
...
...
ENDWITH
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33083953
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeyPreview = .T
У меня сюда не заходит :
при SET SYSMENU on (системное меню включено - и выключать нельзя )
Form.KeyPress
CASE (m.nKeyCode = 6) AND (m.nShiftAltCtrl = 2)

при SET SYSMENU off заходит - но меня не устраивает
поэтому и кручусь через ON KEY LABEL LABEL
...
Рейтинг: 0 / 0
Горячие клавиши для поиска
    #33084128
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Системное меню не помеха событию KeyPress формы. Главное, чтобы в системном меню (и в командах ON KEY LABLE...) вы не определили те же комбинации клавиш, что хотите обрабатывать в методе KeyPress
С уважением, Алексей.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Горячие клавиши для поиска
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]