Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1923 / 9 сообщений из 9, страница 1 из 1
19.04.2005, 08:41
    #33022338
RaufM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Папку с законченным проектом и всеми файлами скопировал в другую папку. Открыл из новой папки проект, на запрос Фокса о новом месте расположения файлов проекта ответил утвердительно. Переделал некоторые процедуры некасающиеся сути вопроса. Скомпилировал и запустил exe-шник и пошло-поехало.
А проблема в том, что в программе открываю первое окно (WindowType = 0):
*...
Do Form F_1
*....
* затем второе (WindowType = 1)
*....
Do Form F_2
*....
* в форме F_2 даю команду типа
*
F_1.Command1.Enabled = .F.
*

Пробовал и так:

If WEXIST('F_1') and WVISIBLE('F_1')
F_1.Command1.Enabled = .F.
EndIf


Выскакивает ошибка 1923 "Object F_1 is not found."
Хотя в первом проекте все нормально работает. В чем может быть проблема?

Думал в файлах .scx(.sct) дефекты. Создал с нуля F_1 и F_2 - тоже самое!!!
...
Рейтинг: 0 / 0
19.04.2005, 09:22
    #33022376
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Видимо область видимости переменной или есть поля таблиц с такими же именами F_1....
...
Рейтинг: 0 / 0
19.04.2005, 09:35
    #33022405
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
pivaВидимо область видимости переменной
Конечно. Надо:
Код: plaintext
1.
2.
PUBLIC var_F_1
Do Form F_1 NAME var_F_1 LINKED
...
Рейтинг: 0 / 0
19.04.2005, 11:07
    #33022626
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Тут у тебя var_F_1
А там
F_1.Command1.Enabled = .F.
...
Рейтинг: 0 / 0
19.04.2005, 13:50
    #33023081
RaufM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Этот вариант прошел:

PUBLIC var_F_1
Do Form F_1 NAME var_F_1 LINKED

Но жалко память тратить!!

И все-таки кажется глюк в файлах формы. Сделал новый проект с двумя формами как описано выше - все прекрасно работает без Do Form F_1 NAME var_F_1 LINKED

А причина ?

Спасибо за ответы!
...
Рейтинг: 0 / 0
19.04.2005, 14:14
    #33023172
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Ну, так ты где-то переопределил переменную F_1 и она перестала быть объектом. Отсюда и глюки.

Код: plaintext
1.
2.
3.
DO FORM F_1.scx
?TYPE("F_1")
F_1 =  1 
?TYPE("F_1")

Т.е. сама переменная есть, но после переопределния это уже НЕ объект. Вообще-то, так с формами никто не работает. Особенно недопустимо использовать указанный синтаксис с PUBLIC-переменными. Верный путь к большим проблемам.

Надо либо явно передавать в подчиненную форму ссылку на главную, либо вести собственную коллекцию активных форм, либо сканировать системную коллекцию _SCREEN.Forms() или _VFP.Forms().

Один из вариантов работы с формами посмотри здесь

http://www.foxclub.ru/kb/index.php?sid=75423&aktion=artikel&rubrik=004&id=4&lang=ru
...
Рейтинг: 0 / 0
21.04.2005, 07:27
    #33026681
RaufM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Тщательно проверил весь код. Нигде определения, а тем более переопределения переменной F_1 нет. Тогда просто понаставил в разных местах Save To ....mem. После анализа всех файлов .mem только в самом последнем
*...
*закрываем все (в том числе все окна)
Save To P_end.mem
Quit

Вылазит

F_1 L .NULL.

Это ли не глюк.

По этому поводу вспоминается один глюк (еще в FPD 2.6, а в последствии и в VFP 3.0, в более старших версиях еще не проверял), когда ни с того ни сего часть команд в режиме трассировки выполняется нормально, а без трассировки не выполняется, например в процедурном файле (несколько тысяч строк кода) имеем процедуру

1 Procedure ...
2 Select 1
3 Index On ...
4 Select 2
5 Index On ...
6 Select 3
7 Index On ...
8 Select 1
9 Set Relation ...
....

В режиме трассировки - все Ок!
Без трассировки не выполняется, например, строки с 5 по 7
Что делать?
Просто поставил Wait "" Window Timeout 0.1

1 Procedure ...
2 Select 1
3 Index On ...
4 Wait "" Window Timeout 0.1
5 Select 2
6 Index On ...
7 Wait "" Window Timeout 0.1
8 Select 3
9 Index On ...
10 Wait "" Window Timeout 0.1
11 Select 1
12 Set Relation ...
....

И во всех режимах - Ок!

Это ли не глюк!!

Если проблема решается, а я думаю, всегда можно найти решение, - и слава Богу!
Некогда распыляться на всякую ерунду.

Спасибо за ответы!
...
Рейтинг: 0 / 0
21.04.2005, 11:54
    #33027249
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
RaufMЕсли проблема решается, а я думаю, всегда можно найти решение, - и слава Богу!
Некогда распыляться на всякую ерунду.
Да пожалуйста! Только если ты решишь использовать PUBLIC переменные "не распыляясь на разную ерунду" потом не приставай с вопросами типа "а почему это у меня форма F_1 неожиданно пропадает?"
...
Рейтинг: 0 / 0
23.04.2005, 03:34
    #33031520
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1923
Hi RaufM!

DO FORM ... если НЕ указывать опции NAME имя_переменной - АВТОМАТОМ создаст
Private переменную по имени scx файла, и поместит в неё ссылку на эту самую
форму. Так что ЯВНОЕ указание области видимости переменной никак нельзя
назвать "замусориванием". А вообще слушай Владимира и НЕ используй эти
неявные переменные-ссылки.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1923 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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