Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Закрытие программы / 14 сообщений из 14, страница 1 из 1
26.05.2010, 20:30
    #36651473
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
В общем проблемма в следующем:
Создал меню приложения в один из пунктов меню поставил кнопку выход из программы, написал там процедуру quit выход работает.Всё закрывает выходит в меню Windows
Прицепил к меню форму написал необходимый текст программы в меню program.После этого выход происходит только в foxpro(выход в windows не работает). Подскажите плиз может есть какая нибудь команда которая закрывает все окна при запуске программы на выполнение из пункта меню?Ибо я в этом деле чайник.
...
Рейтинг: 0 / 0
26.05.2010, 20:37
    #36651485
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Svikator,

clear events где-нибудь рядом с "выходом" у вас есть?
...
Рейтинг: 0 / 0
27.05.2010, 09:12
    #36651909
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Да есть.
...
Рейтинг: 0 / 0
27.05.2010, 10:05
    #36652009
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Подскажите плиз может есть какая нибудь команда которая закрывает все окна при запуске программы на выполнение из пункта менюЕсли нет модальных окон, то что-нибудь вроде
Код: plaintext
1.
2.
for ii= 1  to _screen.formcount 
_screen.forms(ii).close() 
endfor
...
Рейтинг: 0 / 0
27.05.2010, 14:42
    #36653031
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
вот пример кода.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Procedure quit

oTmrExit = createobject("tmrExit", e_nMode)
if vartype(oTmrExit)<>"O"
	return .f.
endif
oTmrExit.interval =  10 
Return .t.



define class tmrExit as timer

	interval =  0 
	nMode 	 =  0 

	procedure timer
		this.interval  =  0 
		LOCAL lnFormCount, lnNum, loForm
		lnFormCount	= _screen.formcount
		for lnNum=lnFormCount to  1  step - 1 
			try
				loForm = _screen.forms(lnNum)
			catch
				loForm = .f.
			endtry
			if vartype(loForm)="O"
				loForm.visible = .f.
				loForm.release()
			endif
		endfor

		close data
		clear events
		clear dlls
		on shutdown
		quit
EndDefine 

от меню желательно оторваться таймером,
так как в случае фокуса в активном гриде
будет нарушена последовательность разрушения
форм.
...
Рейтинг: 0 / 0
01.06.2010, 19:52
    #36662376
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Не происходит закрытия. Никакой ошибки не выдаёт.
...
Рейтинг: 0 / 0
02.06.2010, 08:53
    #36662983
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
SvikatorНе происходит закрытия. Никакой ошибки не выдаёт.

где и после чего?

set step не помог?
...
Рейтинг: 0 / 0
02.06.2010, 09:14
    #36663015
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
SvikatorВ общем проблемма в следующем:
Создал меню приложения в один из пунктов меню поставил кнопку выход из программы, написал там процедуру quit выход работает.Всё закрывает выходит в меню Windows
Прицепил к меню форму написал необходимый текст программы в меню program.После этого выход происходит только в foxpro(выход в windows не работает). Подскажите плиз может есть какая нибудь команда которая закрывает все окна при запуске программы на выполнение из пункта меню?Ибо я в этом деле чайник.
Чего-то я из сказанного автором таки не совсем понял - проблема в закрытии всех открытых форм или в выход из приложения ?
Все открытые формы вы можете закрыть (хоть из меню, хоть откуда угодно) так :
Код: plaintext
1.
2.
3.
FOR x= 1  TO _screen.formcount
    z=_screen.forms(x)
    RELEASE &z && при этом сделать корректное закрытие таблиц, привязанных к форме в методе Unload() каждой формы
NEXT
А выход из приложения кончается убийственной командой QUIT. Не знаю, где вы там её поставите.
...
Рейтинг: 0 / 0
02.06.2010, 09:28
    #36663040
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Всё выше перечисленное перепробывал. Почему то даже ошибки не выдаёт.
...
Рейтинг: 0 / 0
02.06.2010, 09:31
    #36663041
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
У меня форма привязана к меню. В общем при запуске программы у меня на рабочем столе появляется форма, а сверху пункты меню. Так вот мне необходим полный выход из FoxPro с закрытием всех приложений.
...
Рейтинг: 0 / 0
02.06.2010, 10:09
    #36663121
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
пример
...
Рейтинг: 0 / 0
02.06.2010, 12:17
    #36663560
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
У меня в проге стоит строка "read events" при запуске в ней ошибку выдаёт. Если её убрать то прога не работает.
SET TALK OFF
SET DATE GERMAN
SET CENTURY ON
SET escape off
SET PATH TO libs, prg, menus, data, reports
ON SHUTDOWN do alvexitproc
PUSH MENU _msysmenu
HIDE WINDOW "Standard"
*Вызываем на выполнение форму
DO FORM i:\267-2\main.scx
DO i:\267-2\menu1.mpr
_screen.Visible= .T.
READ events

*Возвращаем настройки
POP MENU _msysmenu
ON SHUTDOWN

*Процедура завершения программы
PROCEDURE alvexitproc
CLEAR EVENTS
RETURN 0
...
Рейтинг: 0 / 0
02.06.2010, 12:58
    #36663742
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
SvikatorУ меня в проге стоит строка "read events" при запуске в ней ошибку выдаёт. Если её убрать то прога не работает.
SET TALK OFF
SET DATE GERMAN
SET CENTURY ON
SET escape off
SET PATH TO libs, prg, menus, data, reports
ON SHUTDOWN do alvexitproc
PUSH MENU _msysmenu
HIDE WINDOW "Standard"
*Вызываем на выполнение форму
DO FORM i:\267-2\main.scx
DO i:\267-2\menu1.mpr
_screen.Visible= .T.
READ events

*Возвращаем настройки
POP MENU _msysmenu
ON SHUTDOWN

*Процедура завершения программы
PROCEDURE alvexitproc
CLEAR EVENTS
RETURN 0


я ведь для Вас положил пример, в котором все работает.
может проще сделать подобно?
...
Рейтинг: 0 / 0
02.06.2010, 14:26
    #36664018
Svikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие программы
Всё прекрасно работает. Всем большое спасибо!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Закрытие программы / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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