Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
09.10.2013, 12:10
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
В форме formА в методе formА.init создаем глобалную переменную gcValue . Добавляем на форму formА кнопку commandA с вызовом другой формы formB , где в качестве параметра подаем глобальную переменную gcValue , например, Код: sql 1.
. После этой команды глобальная переменная исчезает, и на команду Код: sql 1.
выдается значение 'U' как в вызываемой форме, так и в вызывающей(например в коде кнопки command1 после команды запуска 2-й формы). Но, если код кнопки изменить: Код: sql 1. 2.
то глобальная переменная останеться. Может кто нибудь объяснить что происходит с глобальной переменной при переаче ее как параметра в другую форму ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:21
|
|||
---|---|---|---|
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreenВ форме formА в методе formА.init создаем глобалную переменную gcValue . Добавляем на форму formА кнопку commandA с вызовом другой формы formB , где в качестве параметра подаем глобальную переменную gcValue , например, Код: sql 1.
. После этой команды глобальная переменная исчезает, и на команду Код: sql 1.
выдается значение 'U' как в вызываемой форме, так и в вызывающей(например в коде кнопки command1 после команды запуска 2-й формы). Но, если код кнопки изменить: Код: sql 1. 2.
то глобальная переменная останеться. Может кто нибудь объяснить что происходит с глобальной переменной при переаче ее как параметра в другую форму ? 1. Как создаётся глобальная переменная, пример кода в студию. 2. Почитай Почему созданный массив или переменную не "видно" в других методах формы ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:27
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:28
|
|||
---|---|---|---|
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreen, странно, у меня никуда паблик не исчезает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:37
|
|||
---|---|---|---|
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
ищи где переменная удаляется Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:44
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
Код кнопки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Метод init вызываемой формы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Между кодом кнопки первой формы и кодом инита 2-й формы кода нет(например в методе, load), т.е. debuger с команды Код: sql 1.
сразу попадает в инит 2-й формы и там не находит глобальной переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:49
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
Если в коде кнопки раскоментировать строку Код: sql 1.
и в качестве параметра подавать ln_ParamSprav, то все ок, глобальная переменная остаеться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:52
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
Может быть дело в каких то настройках SET... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 12:57
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreen, А что показывет DISPLAY MEMORY LIKE gcValue TO FILE DISPLMEM.txt ??? Я подозреваю, что будет что-то вроде атрибута HIDDEN для gcValue ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 13:03
|
|||
---|---|---|---|
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreenКод кнопки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Метод init вызываемой формы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Между кодом кнопки первой формы и кодом инита 2-й формы кода нет(например в методе, load), т.е. debuger с команды Код: sql 1.
сразу попадает в инит 2-й формы и там не находит глобальной переменной. Ещё раз. Где определение gn_ParamSprav как глобальной переменной? И прочти приведённую ссылку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 13:04
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreen, мои подозрения оправдались. Код Код: plaintext 1. 2. 3. 4. 5. 6. 7.
дал результат GCVALUE (hid) L .F. U ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 13:11
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreen, в общем, если приспичило передавать глобальную переменную через параметры и не терять её из виду в подпрограмме, передавай ею не по ссылке, а по значению как DO Sub WITH (m.gcValue) или DO Sub WITH m.gcValue+''. Но лучше избегать таких излишеств. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 14:07
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
Rostislav D. Kudryashov, спасибо. ps. Два небольших вопроса: 1).Зачем указывать префикс m. ? (Я так понимаю, это явное указание на то, что эта переменная памяти и foxpro не будет сначала искать, например, поля в таблице с таким именем, а сразу среди переменных). В чем выигрыш записи m.lcValue по сравнению с lcValue. 2). Что означает запись Код: sql 1.
? Раньше не сталкивался с таким вариантом записи этой команды (+''). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 14:27
|
|||
---|---|---|---|
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreenМожет быть дело в каких то настройках SET... ? Дело в правилах хорошего тона при программировании. Глобальную переменную нет необходимости передавать как параметр, ее и так везде видно. Предпочтительно глобальные переменные создавать в начале программы и при необходимости уничтожать при закрытии. В формах также нет необходимости их создания, т.к. там можно создавать свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2013, 16:14
|
|||
---|---|---|---|
|
|||
Исчезновение глобальной переменной при передаче ее как параметра в другую форму |
|||
#18+
faustgreen, 1) префикс "m." указывают из чувства самосохранения - для однозначности. В противном случае, если где-то окажется активная область с таблицей, в которой есть одноименное поле, в выражении будет использовано это поле. 2) Передать переменную по значению можно, включив её в выражение. Чтоб не менять её значение, прибавим к ней пустое значение символьного типа, т.к. венгерская запись gcValue мнемонически указывает на глобальную переменную символьного типа. На мой вкус, более выразительная версия венгерской нотации с суффиксами - m.Value_gc. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1582885]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 276ms |
0 / 0 |