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

Там же можно отловить нажатие функциональных клавиш.
...
Рейтинг: 0 / 0
27.03.2007, 11:20
    #34417681
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
_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
27.03.2007, 12:12
    #34417851
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
Спасибо - получилось)
Но как быть если мне нужно задать обработчик не через окно свойств, а вручную - программно?
...
Рейтинг: 0 / 0
27.03.2007, 12:38
    #34417967
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
Не понял, переведи. Очередной вариант самомодифицирующейся программы? Программный код обычно заранее прописывается.
...
Рейтинг: 0 / 0
27.03.2007, 13:05
    #34418082
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
Допустим в файле основной программы я создаю форму CREATEOBJECT'ом , дальше определяю необходимые свойства, затем необходимо определить оброботчики и потом сделать шоу формы.
Вот как все это сделать программно?
...
Рейтинг: 0 / 0
27.03.2007, 13:13
    #34418111
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
М-да... Тяжелый случай.

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Может он подойдет ?
...
Рейтинг: 0 / 0
27.03.2007, 14:52
    #34418549
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
Мечтать не вредно. Это для среды разработки, а именно для билдеров.
...
Рейтинг: 0 / 0
27.03.2007, 14:54
    #34418560
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
В C sharp'е если я не ошибаюсь.
...
Рейтинг: 0 / 0
27.03.2007, 14:54
    #34418565
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
ПогодинВ 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
27.03.2007, 14:55
    #34418571
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик события в VFP
В C sharp'е если я не ошибаюсь.

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

вот и нате

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

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

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


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