Автор | Сообщение |
|
| |
Пост N: 34
Зарегистрирован: 28.07.10
|
|
Отправлено: 30.11.10 08:41. Заголовок: приколы функции OnChange()
в трех текстовых полях сделал такую реакцию на события OnChange OnChange(1) OnChange(2) OnChange(3) Для экономии туда же включил вариант OnChange(0) function OnChange(n) if n=0 lChanged1:=.f. lChanged2:=.f. lChanged3:=.f. wMain.btn_Conf.Enabled:=.f. elseif n=1 lChanged1:=.t. wMain.btn_Conf.Enabled:=.t. elseif n=2 lChanged2:=.t. wMain.btn_Conf.Enabled:=.t. elseif n=3 lChanged3:=.t. wMain.btn_Conf.Enabled:=.t. endif return Nil Так вот - реакция полей формы = правильная А вызов OnChange(0) из другой функции - не срабатывает. ... OnChange(0) MemoWrit(cIniFile,t) Не по ошибке, а просто как нет такой строчки в программе. Я туда отладочной информации напихал - не вызавается функция!? Пока не изменил имя на EvOnChange(). Такое впечатление что вызывалась какая-то другая пустая функция OnChange() Но башку себе сломал на этом деле - ну ведь не может строчка в этом места программы не выполняться.
|
|
|
Ответов - 5
[только новые]
|
|
|
| |
Пост N: 82
Зарегистрирован: 11.06.10
|
|
Отправлено: 30.11.10 09:22. Заголовок: А если так if n==0 и..
А если так if n==0 или if n==.f. (т.е. вместо 0 передавать .f.)
|
|
|
|
| moderator
|
Пост N: 127
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.11.10 12:20. Заголовок: SADSTAR33 пишет: Та..
SADSTAR33 пишет: цитата: | Такое впечатление что вызывалась какая-то другая пустая функция OnChange() |
| Просто выражение OnChange зарезервировано в MiniGUI для собственной команды Но это - полбеды, более сложная ситуация с тем, что стандартная Клипперная команда FIELD <имя поля> тоже зарезервирована в MiniGUI для собственной команды. Поэтому приходится быть внимательным и проверять текст программы после работы препроцессора (т.е. использовать при компиляции ключ /p)
|
|
|
|
| |
Пост N: 35
Зарегистрирован: 28.07.10
|
|
Отправлено: 01.12.10 02:07. Заголовок: AlexMyr пишет: А ес..
AlexMyr пишет: цитата: | А если так if n==0 или if n==.f. (т.е. вместо 0 передавать .f.) |
| Я отладочное сообщение вставлял в том числе и сразу после входа в функцию до If Видел вызов функции при занесении текста в текстовые поля. Но не видел при вызове из программы.
|
|
|
|
| |
Пост N: 36
Зарегистрирован: 28.07.10
|
|
Отправлено: 01.12.10 02:18. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Просто выражение OnChange зарезервировано в MiniGUI для собственной команды |
| В MiniGUI.chm упоминается только как цитата: | OnChange Action to be performed when generic changing of the control SYNTAX ON CHANGE <OnChangeProcedure> | <bBlock> Alternate Syntax: ONCHANGE <OnChangeProcedure> | <bBlock> |
| что (по моему представлению) является частью команды определения(создания) контрола а не отдельной командой Харбора/МиниГУИ
|
|
|
|
| moderator
|
Пост N: 128
Зарегистрирован: 11.02.10
|
|
Отправлено: 01.12.10 21:23. Заголовок: SADSTAR33 пишет: В ..
SADSTAR33 пишет: цитата: | В MiniGUI.chm упоминается только как |
| Не забывайте про альтернативный синтаксис цитата: | #xcommand ONCHANGE <onchange> ; =>; _HMG_ActiveControlOnChange := <{onchange}> |
|
|
|
|
|