powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработчик события в VFP
25 сообщений из 29, страница 1 из 2
Обработчик события в VFP
    #34417446
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите кто-нибдуь как назначить обработчик на любое событие программно? или ссылку на инфу.
Заранее благодарен
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417483
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О каких событиях речь? Виндовых или внутри программы? Может задачку описать, а не способ ее решения?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417503
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме 3 грида, мне необходимо реализовать чтобы переход по ним происходил по нажатию таба. Затем необходимо сделать выполнение процедур по нажатию F1,F2,F3 и т.д во время ввода данных в грид. Как я понял последнее сделать в обработчике события keypress самого грида не получиться, нужно назначить похоже на каждую ячейку. Еще проблема с F1 - автоматом вызывается справка..... Я только начал работать с VFP, прошу камнями не швыряться :)
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417583
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме обработчиков keypress грида и текстбоксов в нём, еще есть такой же у формы. Чтобы он заработал надо поставить у формы KeyPreview = .t.

Там же можно отловить нажатие функциональных клавиш.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417681
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_jtНа форме 3 грида, мне необходимо реализовать чтобы переход по ним происходил по нажатию таба. Затем необходимо сделать выполнение процедур по нажатию F1,F2,F3 и т.д во время ввода данных в грид. Как я понял последнее сделать в обработчике события keypress самого грида не получиться, нужно назначить похоже на каждую ячейку. Еще проблема с F1 - автоматом вызывается справка..... Я только начал работать с VFP, прошу камнями не швыряться :)
Удобнее всю обработку клавиш делать в одном месте - я делаю в KeyPress форме.
На каждую ячейку GRID обработку вешать не стоит. Достаточно у формы поставить KeyPreview = .T.
Вот пример с TAB

KeyPress формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
LPARAMETERS nKeyCode,  nShiftAltCtrl 
#DEFINE KL_NEXT_OBJ	(nKeyCode =  9  .and. nShiftAltCtrl =  0 )

m.lcName = IIF(TYPE("THISFORM.ActiveControl") == "O", UPPER(THISFORM.ActiveControl.Name), "")
WITH THISFORM
	DO CASE
		CASE KL_NEXT_OBJ AND (m.lcName == "GRD3")
			.grd1.SetFocus()
			NODEFAULT
		CASE KL_NEXT_OBJ AND (m.lcName == "GRD1")
			.grd2.SetFocus()
			NODEFAULT
		CASE KL_NEXT_OBJ AND (m.lcName == "GRD2")
			.grd3.SetFocus()
			NODEFAULT
		CASE ....
		OTHERWISE
			DODEFAULT(m.nkeycode, m.nshiftaltctrl)
	ENDCASE
ENDWITH
С уважением, Алексей
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417851
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо - получилось)
Но как быть если мне нужно задать обработчик не через окно свойств, а вручную - программно?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34417967
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял, переведи. Очередной вариант самомодифицирующейся программы? Программный код обычно заранее прописывается.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418082
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим в файле основной программы я создаю форму CREATEOBJECT'ом , дальше определяю необходимые свойства, затем необходимо определить оброботчики и потом сделать шоу формы.
Вот как все это сделать программно?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418111
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
М-да... Тяжелый случай.

Для этого придуманы классы. Рисуешь класс твоей формы, определяешь методы на нужные случаи жизни. И вот во время исполнения CREATEOBJECT'ом и создается экземпляр соответствующего класса с уже определенными методами.

Короче, почитайте что-нибудь по основам программирования в общем и основам ООП в частности.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418156
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дам вредный совет, может не послушаетесь

ООП - зло,
лутШе все руками,
руками-то оно ....
а ече куча проектов на 2.6

извините за флейм, не удержался


а теперь правильный.

конечно-же
удобней и проще, и понятнее
в дизайнере
(особенно когда порождаются наследники)

все ведь на-виду
тем-более в дизайнере
код - объемный

проще ведь методы редактировать, чем мотаться
по плоскому длинному коду
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418311
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бывает необходимо, чтобы у множество контролов был один и тот же обработчик конкретного события. Вручную, в дизайнере код так замучаешься вставлять, другое дело в цикле пустить...

Теперь вот другие грабли: свойство ActiveControl формы неопределенно =( Хотя грид в фокусе.
В дебагере просмотриваю вотчем, пишет- "Expression could not be evaluated"
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418331
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бывает необходимо, чтобы у множество контролов был один и тот же обработчик конкретного события. Вручную, в дизайнере код так замучаешься вставлять, другое дело в цикле пустить...

Еще раз: вот для того, чтобы , в том числе, не писать циклы и придумано ООП. Пишется ОДИН класс контрола и на его основе создается ЛЮБОЕ количество экземпляров, в которых обработчик уже унаследован. Может все-таки почитать по ООП?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418373
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov. Пишется ОДИН класс контрола и на его основе создается ЛЮБОЕ количество экземпляров, в которых обработчик уже унаследован.

Все это ведь на этапе разроботки, вслучае если нужно будет изменить его во время выполнения, это уже не подойдет.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418378
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот у людей видел такой вариант.

Есть некий класс формы, в котором добавлены методы на каждую горячую кнопку (например - сохранить, удалить и т.д.)
Горячие кнопки четко закреплены за методом, т.е. например при нажатии на F2 выполняеться метод "сохранить" ну и т.д.
Сами же эти методы описываються в каждой форме, в зависимости от потребностей, т.е. получаеться что функционал работы с горячими кнопками единый на всю программу, а реакия на эти кнопки - в каждой форме своя, в зависимости от того что нужно
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418392
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Все это ведь на этапе разроботки, вслучае если нужно будет изменить его во время
> выполнения, это уже не подойдет.

А что ты конкретно хочешь менять в процессе выполнения программы ??
Приведи пример.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418452
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На данный момент ничего, но интересна сама такая возможность.

Vladimir M Sklyar
Есть некий класс формы, в котором добавлены методы на каждую горячую кнопку (например - сохранить, удалить и т.д.)
Горячие кнопки четко закреплены за методом, т.е. например при нажатии на F2 выполняеться метод "сохранить" ну и т.д.
Сами же эти методы описываються в каждой форме, в зависимости от потребностей, т.е. получаеться что функционал работы с горячими кнопками единый на всю программу, а реакия на эти кнопки - в каждой форме своя, в зависимости от того что нужно
Posted via ActualForum NNTP Server 1.4
Без полиморфизма :)
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418499
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все это ведь на этапе разроботки, вслучае если нужно будет изменить его во время выполнения, это уже не подойдет

И много есть языков, позоляющих такое (не считая ассемблера)? Или правил прогаммирования, на основе которых такое поведение можно назвать нормальным?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418527
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VFP9 есть

Control.WriteMethod(cMethodName, cMethodText [,lCreateMethod [, nVisibility [, cDescription]]]).

Может он подойдет ?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418549
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мечтать не вредно. Это для среды разработки, а именно для билдеров.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418560
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В C sharp'е если я не ошибаюсь.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418565
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПогодинВ VFP9 есть

Control.WriteMethod(cMethodName, cMethodText [,lCreateMethod [, nVisibility [, cDescription]]]).

Может он подойдет ?

Прежде, чем давать ТАКОЙ совет, вы бы почитали HELP!
WriteMethod
...
Writes the specified text to the specified method. Available at design time only.
...
Specifies whether the method is created when it doesn't already exist. Because this method is useful only at design time , you must save the form or class before changes can be effective.
...
С уважением, Алексей.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418571
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В C sharp'е если я не ошибаюсь.

Можно ссылочку?
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418582
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_jtВ C sharp'е если я не ошибаюсь.
В C# можно "навесить" свой обработчик событий на любое событие, но делегата все равно "на лету" создавать нельзя.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418601
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторБез полиморфизма

вот и нате

а чем полиморфизм помешал??
...
Рейтинг: 0 / 0
Обработчик события в VFP
    #34418683
_jt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-K
В C# можно "навесить" свой обработчик событий на любое событие, но делегата все равно "на лету" создавать нельзя.
С уважением, Алексей.
Так разговор как раз о обработчике :)

alex11100 авторБез полиморфизма
вот и нате
а чем полиморфизм помешал??

ничем=) И я считаю что это очень полезная штука, но было бы помоему неплохо, когда вместо сочинения кода наследования и переопределения, можно было бы просто присвоить в нужный событию его обработчик. На данный момент мне это не нужно, но все же любопытно возможно ли это. Если нет, то и пофигу...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработчик события в VFP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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