Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проверка существования формы / 6 сообщений из 6, страница 1 из 1
01.12.2009, 11:50
    #36340683
Gans-255
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
Здравствуйте!
Делаю проверку сушествования формы, при первом проходе по условию форма запускается и получает свое, но при последуюшем проходе появляется ошибка Object KRform is not found .
При этом форма находится под активной формой.
И еще если форма KRform ранее запускалась из другого места, то условие отрабатывает как надо и ошибок не возникает.
Я не спец, поэтому прошу помощи

IF TYPE("_VFP.Forms('KRform')")="U"
DO FORM KRform.scx
ELSE
KRform.Grid1.RecordSource='tmp'
KRform.refresh
ENDIF
...
Рейтинг: 0 / 0
01.12.2009, 12:42
    #36340861
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
в инит формы проверка на ее уникальность
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
if this.lOnlyOne
	FOR EACH cName IN _SCREEN.FORMS
		IF cName.BASECLASS="Form" AND ALLTRIM(UPPER(cName.NAME))==ALLTRIM(UPPER(THISFORM.NAME)) and cName<>this
			IF cName.WINDOWSTATE= 1 
				cName.WINDOWSTATE= 0 
			ENDIF
			
			ACTIVATE WINDOW (cName.NAME)
			
			RETURN .F.
		ENDIF
	ENDFOR
endif

.... дальше какой-то код

алгоритм работает след.образом:
- если такой активной формы еще нет, то выполнение инита не прервется
- если есть форма и будет попытка запустить форму с таким-же Name, то та,
которая уже существует станет активной
...
Рейтинг: 0 / 0
01.12.2009, 15:26
    #36341359
Gans-255
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
В моем случае если форма ранее запускалась из главного меню программы, то к ней можно обращаться, а если она запушена из другого места, то обращаться я к ней немогу,
поэтому при первом проходе условия форма запускается, а при последуюших форма видна, но ругается на команды стоящие после ELSE таким матом Object KRform is not found.
Как же сделать, чтобы она была доступна из любого уголка программы.

IF TYPE("_VFP.Forms('KRform')")="U"
DO FORM KRform.scx
ELSE
KRform.Grid1.RecordSource='tmp'
KRform.refresh
ENDIF
...
Рейтинг: 0 / 0
01.12.2009, 16:17
    #36341473
GoshaS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
Как вариант - это привязка формы к глобальной переменной с тем-же именем. Не знаю, насколько это правильно или нет, но сможешь по имени переменной из любого места проги обращаться к форме и ее свойствам. Скажем убить форму: relase f_otcheti
Код: plaintext
1.
2.
PUBLIC f_otcheti
DO FORM f_otcheti NAME f_otcheti LINKED
Тогда
...
Рейтинг: 0 / 0
01.12.2009, 18:38
    #36341880
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
Gans-255В моем случае если форма ранее запускалась из главного меню программы, то к ней можно обращаться, а если она запушена из другого места, то обращаться я к ней немогу, поэтому при первом проходе условия форма запускается, а при последуюших форма видна, но ругается на команды стоящие после ELSE таким матом Object KRform is not found.

Как же сделать, чтобы она была доступна из любого уголка программы.

Код: plaintext
1.
2.
3.
4.
5.
6.
IF TYPE("_VFP.Forms('KRform')")="U"
    DO FORM KRform.scx
ELSE
    KRform.Grid1.RecordSource='tmp'
    KRform.refresh
ENDIF

Перепишите код вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
IF TYPE("_VFP.Forms('KRform')")="U"
    DO FORM KRform.scx
ELSE
    _VFP.Forms('KRform').Grid1.RecordSource='tmp'
    _VFP.Forms('KRform').refresh()
ENDIF
...
Рейтинг: 0 / 0
01.12.2009, 21:27
    #36342096
Gans-255
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования формы
2 ВладимирМ

Именно так я и сделал уже, Заработало!!
Но все равно спасибо!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проверка существования формы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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