Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Error 1924 / 6 сообщений из 6, страница 1 из 1
19.08.2003, 13:41
    #32240250
bdv9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
QuickSeek - класс на основе формы (строка быстрого (инкрементного) поиска).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public frmQuickSeek
frmQuickSeek = Createobject('MyClasses.QuickSeek', .T./.F.)
frmQuickSeek.Show( 0 )

***
On Key Label  0  frmQuickSeek.PushKey(LastKey())
...
On Key Label ? frmQuickSeek.PushKey(LastKey())
***

Периодически на некоторые строки, заключенные в *** выдается ошибка ("name" is not an object (Error 1924)), причем каждый раз на разные и только на какую-нибудь одну.

Может кто-нибудь сталкивался с этим и подскажет где проблема.
...
Рейтинг: 0 / 0
19.08.2003, 14:39
    #32240409
Aijik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
Хотя хэлп говорит про ошибку 1924 вот это:

Код: plaintext
1.
2.
3.
4.
 "name"  is not an object (Error  1924 )
******************************
This name was previously defined as something other than an object. 
You have another occurrence of name. 
Check your code for duplicate instances of name. 


Однако, наплевавши на свое описание в MSDN, эта ошибка еще возникает и в случае, когда ссылка на объект равна .NULL., но прога всё равно пытается обратиться к св-вам/методам этого объекта через эту ссылку (что у вас и имеет место быть). Т.е.:

Код: plaintext
1.
2.
3.
4.
5.
oMyForm = CREATEOBJECT( "Form" )
oMyForm.Release()

?TYPE( "oMyForm" ) && "O" 
?ISNULL(oMyForm) &&.T.
oMyForm.Refresh() && OMYFORM is not an object (Error  1924 )


Где-то значит у вас релизится формочка.... переменная frmQuickSeek остается, но равна она NULL
...
Рейтинг: 0 / 0
19.08.2003, 14:40
    #32240413
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
А что происходит, когда мы выходим из формы (то есть, когда мы ее, по сути, уничтожаем)? Правильно, переменная frmQuickSeek приобретает значение null, а ON KEY LABEL ни сном ни духом об этом не ведает. Он упрямо продолжает вызывать методы frmQuickSeek при нажатии соотвествующих клавиш, тогда как сам frmQuickSeek уже объектом не является.

Что нужно сделать?

Либо в Destroy формы уничтожать все ссылки на себя:

Код: plaintext
1.
ON KEY LABEL  0  
ON KEY LABEL ?


Либо использовать устрошающую конструкцию типа:

Код: plaintext
ON KEY LABEL  0  iif(type('m.frmQuickSeek')='O'.and.!isnull(m.frmQuickSeek), m.frmQuickSeek.PushKey(LastKey()),  0 )


при назначении.

Удачи.
...
Рейтинг: 0 / 0
19.08.2003, 15:46
    #32240540
bdv9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
Ошибка возвращает Program() = QuickSeek.Init
Код: plaintext
1.
2.
3.
4.
5.
***
On Key Label  0  frmQuickSeek.PushKey(LastKey())
...
On Key Label ? frmQuickSeek.PushKey(LastKey())
***

Это пишется в методе Init класса QuickSeek

А это пишется в методе Unload класса QuckSeek
Код: plaintext
1.
2.
Release frmQuickSeek
On Key


Разве On Key не очистит клавиши?
...
Рейтинг: 0 / 0
19.08.2003, 15:55
    #32240557
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
Фокс абсолютно прав. В Init-е формы объекта с именем frmQuickSeek еще нет,а клавиша может быть уже нажата. Перенеси свой код по инициализации клавиш в Activate формы, в Deactivate и Destroy - ON KEY.
...
Рейтинг: 0 / 0
20.08.2003, 09:05
    #32241107
bdv9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Error 1924
Спасибо, попробую.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Error 1924 / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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