:: Visual Foxpro, Foxpro for DOS
В VFP9 KeyPress не реагирует на клавишу F3
ali
Доброго всем времени суток!
В предыдущих версиях я активно использовал функциональные клавиши в Grid, в частности F3 для выбора из справочников.
В VFP9 F3 забита жёстко для поиска в редакторе, поэтому Keypress на неё не реагирует.
Как отключить эту фичу?

Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, ali!

1) В рантайме эта комбинация работает? Если и там "забита", то ОЙ.
2) Все такого типа "системные" комбинации (даже часть виндовых - например
F10) можно перехватить по ON KEY LABEL - не сильно красиво, но работать
должно.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Ali
Hi, Igor!
не работает и в рантайме.
Вот работающий пример на Vfp6-Vfp8
Grid1.Column1.Text1.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
DO CASE
CASE nKeyCode = -2
do program1
OTHERWISE
...
ENDCASE
из грида нажимаем F3 и срабатывает KeyPress, выполняется program1
В Vfp9, нажав F3, мы в Keypess не попадаем, происходит поиск по Text1 и всё.. все другие клавиши работают, в т.ч. и комбинации ctrl+f3, shift+f3
on key label не помогает...
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Syberex

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
В Grid-е действительно не работает ,
в простом текстбоксе все нормально,
формой тоже можно перехватить ...

Цитата:
В VFP9 F3 забита жёстко для поиска в редакторе
Странно, но в меню написано Ctrl+F, зачем надо еще по F3




------------------
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Syberex!

Цитата:
Странно, но в меню написано Ctrl+F, зачем надо еще по F3
Виндовый стандарт дальше продвигают, а старое убирать тоже не есть
правильно. Скоро от функциональных свободной нам останется лишь F13




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, All!

P.S. Что-то я не могу воспроизвести это. И в среде и в рантайме форма в
своём KeyPress ловит F3 (Form.KeyPreview = .T.) Quick меню даже специально
сделал и прицепил, на форме что в текстбоксе стою, что в гриде...



[i][small][color=Gray]Отредактировано (04.10.04 15:26)


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Равиль

Сообщений: 6546
Откуда: Уфа
Дата регистрации: 01.08.2003
Парни, где F3 не ловится ?
If !Used("Test")
Create Cursor test (cName c(50))
For m.i=1 To 10
Insert Into test (cName) Values (Sys(2015))
Next
Go Top
Endif
oStartForm = Createobject("StartForm")
oStartForm.Show(1)
Define Class StartForm As Form
KeyPreview=.T.
Add Object My_Grid As Grid With;
Height = 200,;
Width = 150,;
Top = 10,;
Left = 10
Add Object My_TextBox As TextBox With;
Top = 10,;
Left = 200
Add Object My_EditBox As EditBox With;
Top = 50,;
Left = 200
Procedure KeyPress
Lparameters nKeyCode, nShiftAltCtrl
If nKeyCode = -2
Thisform.Pressed_F3(Thisform.ActiveControl.Name)
Endif
Procedure Pressed_F3
Lparameters m.lcntr_Name
Wait Window "Нажата F3 в "+Transform(m.lcntr_Name) Nowait
Enddefine



[i][small][color=Gray]Отредактировано (04.10.04 18:23)


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Syberex

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Равиль, надо поймать в не в KeyPress формы, а в
oForm.Grid1.Column1.Text1.KeyPress()
Попробуй




------------------
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Равиль

Сообщений: 6546
Откуда: Уфа
Дата регистрации: 01.08.2003
Syberex:
Цитата:
Равиль, надо поймать в не в KeyPress формы, а в oForm.Grid1.Column1.Text1.KeyPress() Попробуй.
Попробовал, ваша правда Если поместить тестбокс в обычный контейнер - то ловится, а в колонке грида - нет. Работает как "поиск в бровсе" выражения, предварительно занесенного в диалог поиска, хотя пункт меню Find недоступен :
** Clear Macros
If !Used("Test")
Create Cursor test (cName c(50))
Local m.i
For m.i=1 To 10
Insert Into test (cName) Values (Sys(2015))
Next
Endif
Go Top
oMy_Form = Createobject("My_Form")
oMy_Form.Show(1)
Define Class My_Form As Form
*!* KeyPreview=.T.
Add Object My_Grid As Grid With;
Height = 200,;
Width = 150,;
Top = 10,;
Left = 10
Add Object My_TextBox As MyText With;
Top = 10,;
Left = 200
Add Object My_Container As Container With;
Top = 50,;
Left = 200,;
Width = 100,;
Height = 50
Procedure My_Container.Init
This.AddObject("Text1","MyText")
This.Text1.Visible=.T.
Procedure My_Grid.Init
This.RemoveObject("Column1")
This.AddObject("Column1","MyColumn")
This.Column1.Visible=.T.
Procedure KeyPress
Lparameters nKeyCode, nShiftAltCtrl
If nKeyCode = -2
Thisform.Pressed_F3(Thisform.ActiveControl.Name)
Endif
Procedure Pressed_F3
Lparameters m.lcntr_Name
Wait Window "Нажата F3 в "+Transform(m.lcntr_Name) Nowait
Enddefine
Define Class MyColumn As Column
********************************
Width = 100
Procedure Init
This.ControlSource=Field(1)
This.RemoveObject("Text1")
This.AddObject("Text1","MyText")
This.Text1.Visible=.T.
Enddefine
Define Class MyText As TextBox
******************************
Procedure Init
This.ControlSource=Field(1)
Procedure KeyPress
Lparameters nKeyCode, nShiftAltCtrl
If nKeyCode = -2
Thisform.Pressed_F3(Thisform.ActiveControl.Name)
Endif
Enddefine



[i][small][color=Gray]Отредактировано (05.10.04 20:06)


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Ali
Всем спасибо!

Пока посижу на VFP 8, а по выходу релиза VFP 9 будем посмотреть что делать...

З.Ы. Кстати в VFP 8 по F3 в редакторе тоже срабатывает поиск, но в KeyPress F3 перехватыватся..
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Цитата:
Кстати в VFP 8 по F3 в редакторе тоже срабатывает поиск
А почему у меня ни 8-ку ни в 9-ке ничего не выскакивает ? Даже обидно




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Syberex

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Цитата:
А почему у меня ни 8-ку ни в 9-ке ничего не выскакивает ?
Не выскакивает? А F3 работает?




------------------
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
F3 работает - правда в vfp9 из примера не ловится




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
Равиль

Сообщений: 6546
Откуда: Уфа
Дата регистрации: 01.08.2003
Всем привет. Тут подумалось - может это заготовка или заброшенная фича от MSFT?
Ведь в гриде явно не хватает встроенного и независимого от типа данных механизма последовательного поиска, такого как в бровсе.
Если кто нароет, как можно читать и писать значение, введенное в стандартном Find-диалоге фокса, то можно будет делать в гриде нечто подобное:
_VFP.ValueToFind="Ищи меня"
Keyb "{F3}"




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: В VFP9 KeyPress не реагирует на клавишу F3
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Про встроенное средство поиска не скажу - но независимый от типа данных поиск у меня давно есть. Правда сделан на Transform(Grid.Columns[x].ControlSource,Grid.Columns[x].InputMask) - ну не совсем так дословно - но по сути. Единственная фича получается при поиске логичских значений
? Transform(.T.) && - дает .T.
? Transform(.T.,"") &&- дает T
Вот такая фича




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 28 (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика