On-line: Andrey, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Пост 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()
Но башку себе сломал на этом деле - ну ведь не может строчка в этом места программы не выполняться.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]





Пост N: 82
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 30.11.10 09:22. Заголовок: А если так if n==0 и..


А если так if n==0 или if n==.f. (т.е. вместо 0 передавать .f.)

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 127
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.11.10 12:20. Заголовок: SADSTAR33 пишет: Та..


SADSTAR33 пишет:

 цитата:
Такое впечатление что вызывалась какая-то другая пустая функция OnChange()


Просто выражение OnChange зарезервировано в MiniGUI для собственной команды
Но это - полбеды, более сложная ситуация с тем, что стандартная Клипперная команда FIELD <имя поля> тоже зарезервирована в MiniGUI для собственной команды. Поэтому приходится быть внимательным и проверять текст программы после работы препроцессора (т.е. использовать при компиляции ключ /p)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 28.07.10
ссылка на сообщение  Отправлено: 01.12.10 02:07. Заголовок: AlexMyr пишет: А ес..


AlexMyr пишет:

 цитата:
А если так if n==0 или if n==.f. (т.е. вместо 0 передавать .f.)


Я отладочное сообщение вставлял в том числе и сразу после входа в функцию до If
Видел вызов функции при занесении текста в текстовые поля.
Но не видел при вызове из программы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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>


что (по моему представлению) является частью команды определения(создания) контрола
а не отдельной командой Харбора/МиниГУИ



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 128
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.12.10 21:23. Заголовок: SADSTAR33 пишет: В ..


SADSTAR33 пишет:

 цитата:
В MiniGUI.chm упоминается только как


Не забывайте про альтернативный синтаксис


 цитата:
#xcommand ONCHANGE <onchange> ;
=>;
_HMG_ActiveControlOnChange := <{onchange}>




Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 700
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет