Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / приложение не закрывается / 6 сообщений из 6, страница 1 из 1
09.03.2007, 03:10
    #34379466
greeng
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приложение не закрывается
Есле нет файла s86.dbf срабатывает Exit.prg
но приложение не закрывается почему?
хотя сам код Exit.prg работает через меню и закрывает приложение
___________

main.prg=>

SET TALK OFF
SET STATUS BAR OFF
SET SYSMENU OFF
ON SHUTDOWN Do Exit.prg
ON error MessageBox ('Ошибка')
Set path to baza
With _Screen
_screen.AUTOCENTER =.T.
.Height = 200
.Width = 600
.BackColor=RGB(255,255,255)
.Caption="Программа формирования списков на банк Уралсиб v 1.01"
Endwith

IF .NOT. FILE('S86.dbf')
MessageBox( 'Нет файла S86.dbf','Программа прервана' )
Quit
ENDIF

DO menu1.mpr
READ EVENTS



release window
CLOSE ALL
CLEAR EVENTS
CLEAR ALL
ON SHUTDOWN

_____________
Exit.prg =>

IF MESSAGEBOX("Закрыть программу?", 4+32, "Выход") = 6
release window
Clear windows
CLOSE ALL
CLEAR EVENTS
ENDIF
...
Рейтинг: 0 / 0
09.03.2007, 11:13
    #34379900
приложение не закрывается
ON SHUTDOWN Do Exit.prg
ставь после условия IF

а в самом условии вместо QUIT сделай RETURN
...
Рейтинг: 0 / 0
09.03.2007, 11:15
    #34379904
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приложение не закрывается
Потому что ПОСЛЕ выполнения Exit.prg программа ПРОДОЛЖАЕТ выполнятся дальше и успешно доходит до команды READ EVENTS, на которой и останавливается.

В данном случае, добавь команду RETURN после Quit.
...
Рейтинг: 0 / 0
09.03.2007, 11:19
    #34379914
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приложение не закрывается
ошибка в последовательности действий

вначале проверяйте отсутствие дбф

а уже затем


ON SHUTDOWN Do Exit.prg


чтобы избежать таких ошибок,
необходимо нарисовать последовательность действий
на бумажке карандашиком, удачи
...
Рейтинг: 0 / 0
09.03.2007, 11:27
    #34379947
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приложение не закрывается
можно сделать и финт ушами,
но лучше всетаки решать такие задачи логично,
т.е правильно поднимать приложение через обвязанные классы


Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
SET TALK OFF 
SET STATUS BAR OFF 
SET SYSMENU OFF 
ON SHUTDOWN Do Exit.prg
ON error MessageBox ('Ошибка')
Set path to baza
With _Screen 
_screen.AUTOCENTER =.T.
.Height =  200  
.Width =  600  
.BackColor=RGB( 255 , 255 , 255 ) 
.Caption="Программа формирования списков на банк Уралсиб v 1.01" 
Endwith 

IF .NOT. FILE('S86.dbf')
	MessageBox( 'Нет файла S86.dbf','Программа прервана' ) 
	my_Exit(.t.)
ENDIF

DO menu1.mpr
READ EVENTS



release window 
CLOSE ALL 
CLEAR EVENTS 
CLEAR ALL 
ON SHUTDOWN

*****************
procedure my_Exit
*****************
lparameters tlMessage
*  tlMessage - если .f. , то светим сообщение
if !tlMessage
	IF MESSAGEBOX("Закрыть программу?",  4 + 32 , "Выход") =  6  
		release window 
		Clear windows 
		CLOSE ALL 
		CLEAR EVENTS 
	endif
else
    on shutdown 
    quit
endif
...
Рейтинг: 0 / 0
09.03.2007, 15:05
    #34380710
Генетический мусор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приложение не закрывается
alex11100можно сделать и финт ушами,
но лучше всетаки решать такие задачи логично,
т.е правильно поднимать приложение через обвязанные классы


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


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