Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает красный крестик / 25 сообщений из 64, страница 1 из 3
19.01.2012, 10:10
    #37621503
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Доброго всем времени суток!
Есть задача, написанная на VFP 9.0, работает без проблем, из ее можно выйти нажатием кнопки «выход» или нажатием красного крестика. Но периодически возникает проблема, после открытия определенных форм, выход из приложения возможен только по кнопке «выход», КРАСНЫЙ КРЕСТИК НЕ РАБОТАЕТ, подскажите, в чем причина всех бед!?
Чаще всего, крестик отказывает после работы с Excel.
...
Рейтинг: 0 / 0
19.01.2012, 11:44
    #37621673
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
А вы пользователь или программист?
...
Рейтинг: 0 / 0
19.01.2012, 12:26
    #37621813
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Жесть.

Этоже извесный баг, крестик нужно перекрасить в зеленый, тогда все проблемы должны решиться.
...
Рейтинг: 0 / 0
19.01.2012, 12:41
    #37621861
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Если задавший вопрос пользователь, логика объяснима.
...
Рейтинг: 0 / 0
19.01.2012, 13:13
    #37621985
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Grin,

Не вопрос, скажи как?
...
Рейтинг: 0 / 0
19.01.2012, 13:15
    #37621994
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Ffffffffffffffff,

И то и другое, хотя, какая разница!
Вопрос в чем, почему не закрывается форма?
...
Рейтинг: 0 / 0
19.01.2012, 14:00
    #37622155
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Если открыто модальное окно - крестик не работает.

Действия выполняемые по крестику прописываются в ON SHUTDOWN
...
Рейтинг: 0 / 0
19.01.2012, 14:31
    #37622250
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Вооооо уже информативней,
теперь покажите еще код, который лежит в ON SHUTDOWN
...
Рейтинг: 0 / 0
19.01.2012, 14:54
    #37622332
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
GrinВооооо уже информативней,
теперь покажите еще код, который лежит в ON SHUTDOWN
Хватит троллить, отслеживай кто спрашивает и кто отвечает
...
Рейтинг: 0 / 0
19.01.2012, 15:08
    #37622372
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
2Dima T,

Пардон, был пьян, исправлюсь
...
Рейтинг: 0 / 0
19.01.2012, 15:29
    #37622431
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Grin,

А страничка просмотра в Excel, считается за модальную форму?
...
Рейтинг: 0 / 0
19.01.2012, 15:36
    #37622454
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
AllkayА страничка просмотра в Excel, считается за модальную форму?
За модальную форму считается только модальная форма :)
Отсюда не видно что там за "страничка просмотра в Excel" у тебя. Как именно эксель используется?
...
Рейтинг: 0 / 0
19.01.2012, 15:45
    #37622479
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Dima T,

Используется он только для «предварительного-просмотра», перед выводом на печать.

SET OLEOBJECT ON
tmpSheet = createobject('excel.application')
XLApp = tmpSheet.application
XLApp.visible = .F.
* команды заполнения отчета

XLApp.visible = .t.
XLApp.Sheets("Лист1").PrintPreview
XLApp.DisplayAlerts=.f.
XLApp.Quit
...
Рейтинг: 0 / 0
19.01.2012, 15:50
    #37622496
Не работает красный крестик
Попробуй закомментировать
Код: vbnet
1.
XLApp.DisplayAlerts=.f. 


Возможно, в Экселе возникает ошибка, а из-за этой команды ты ее не видишь.
...
Рейтинг: 0 / 0
19.01.2012, 16:02
    #37622534
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Fffffffffffffffffffff,

Если закоментить

XLApp.DisplayAlerts=.f.

Он покажет страничку предварительного просмотра, после ее закрытия перехожу непосредственно в Excel, и он спрашивает «Сохранить изменения в файле»
...
Рейтинг: 0 / 0
19.01.2012, 16:06
    #37622547
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Подобным образом эксель не использовал никогда, твой код не запускается просто так, сделай рабочий пример.
Есть подозрение что фокс ждет закрытия экселя на этой строке:
Код: sql
1.
XLApp.Sheets("Лист1").PrintPreview


иначе пользователь не успеет ничего посмотреть и эксель закроется строкой
Код: sql
1.
XLApp.Quit



А пока фокс ждет - закрыть его нельзя.
...
Рейтинг: 0 / 0
19.01.2012, 16:07
    #37622551
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Вот поэтому и не работает, как надо. Открой хелп в Экселе и посмотри параметры команды сохранения. Она должна у тебя быть дальше по коду.
Save или SaveAs.
Сохранение должно быть без подтверждения или его вообще не должно быть. Этого кроме тебя никто не знает.
...
Рейтинг: 0 / 0
19.01.2012, 16:15
    #37622575
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
FfffffffffffffffВот поэтому и не работает, как надо. Открой хелп в Экселе и посмотри параметры команды сохранения. Она должна у тебя быть дальше по коду.
Save или SaveAs.
Сохранение должно быть без подтверждения или его вообще не должно быть. Этого кроме тебя никто не знает.
DisplayAlerts=.f. тут не причем. Все правильно если не надо чтобы эксель вопросы задавал по сохранению перед закрытием книги.
.F. - Равносильно тому что эксель сам ответит "не сохранять".
...
Рейтинг: 0 / 0
19.01.2012, 16:26
    #37622613
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Согласен с Dima T, DisplayAlerts тут не причем

2Allkay
попробуйте перед вызовом Excel добавить
_vfp.AutoYield=.f.
фокс не будет ждать выполнение очереди виндоус

ну и покажите что у Вас в Destroy и QueryUnload формы
...
Рейтинг: 0 / 0
20.01.2012, 08:41
    #37623473
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
А про ON SHUTDOWN никто читать доки не пробовал ?
...
Рейтинг: 0 / 0
20.01.2012, 12:04
    #37623715
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
А сам то пробовал почитать??

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Определяет команду или программный модуль, который будет выполнен при попытке завершить работу системы Visual FoxPro, или ОС Microsoft Windows.

 
ON SHUTDOWN [Команда]
 


Параметры
Использование команды ON SHUTDOWN без параметра Команда очищает текущую установку команды ON SHUTDOWN.

Комментарии
Команда, которая задана в рассматриваемой ON SHUTDOWN выполняется при выполнении попытки выхода из системы Visual FoxPro. 
Если вы пытаетесь завершить работу ОС Microsoft Windows при активном приложении Visual FoxPro, от операционной системы 
управление передается в приложение Visual FoxPro, в команду, заданную при ON SHUTDOWN, она начинает выполняться.

Обычно, в качестве параметра в команде ON SHUTDOWN указывается команда DO для выполнения специального пользовательского программного модуля, который отображает Специальный Диалоговый бокс Exit. 
В рассматриваемом диалоговом боксе можно задать вопрос о продолжении выполнения пользовательского приложения в системе Visual FoxPro.  
Если приложение закрывается, то можно корректно закрыть файлы, сохранить параметры, выполнить корректную команду QUIT. 
Если приложение не закрывается, то можно вернуть управление обратно данному приложению.




Ну и чем ON SHUTDOWN лучше метода DESTROY формы?
Понятно что для порядка ON SHUTDOWN должен быть, но и без него все нормально работает.
Только что спецом пересобрал приложение на модальном топлевелформ без ON SHUTDOWN, приложение закрывается корректно.
в DESTROY формы прописано
Код: sql
1.
2.
3.
CLOSE TABLES ALL 
CLEAR EVENTS 
QUIT
...
Рейтинг: 0 / 0
23.01.2012, 10:43
    #37626459
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Grin,

INIT
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
PARAMETERS r_n,for_s
PUBLIC for_send
for_send=for_s
DODEFAULT()
SET DELETED ON
SET DATE GERMAN
SET CENTURY ON
	ThisForm.TxtRegNumb.Value=''
	IF r_n==''
	ThisForm.TxtRegNumb.SetFocus()
	ELSE
	ThisForm.TxtRegNumb.Value=ALLTRIM(r_n)
	thisform.txtRegNumb.KeyPress(13)
	ENDIF


LOAD
Код: sql
1.
2.
3.
4.
5.
CREATE CURSOR cPoint (PointNumb C(9), PointSod C(254), DateOut D(8), DateNew D(8), ;
      DateFact D(8), DateCansel D(8), TabMark N(6), FioMark C(30), PointRem C(254))
CREATE CURSOR cPointIsp (PointNumb C(9), DateOut D(8), DateNew D(8), DateFact D(8), ;
      DateCansel D(8), TabMark N(6), PointRem C(254))
      PUBLIC cRab



А Destroy и QueryUnload на форме Нет!?
...
Рейтинг: 0 / 0
23.01.2012, 12:53
    #37626726
Grin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
2Allkay,

1.Попробуйте добавить в LOAD (по хорошему нужно добавить в main приложения)
_vfp.AutoYield=.f.

2. Так при выходе из этой формы должен происходить выход из Вашего приложения??
Если таки да, то в DESTROY формы добавьте
CLOSE TABLES ALL
CLEAR EVENTS
QUIT
...
Рейтинг: 0 / 0
23.01.2012, 13:25
    #37626793
Allkay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Grin,

Добавил все, во все процедуры, как было сказано, но все равно, после просмотра в Excel, крестик не закрывает программу.
...
Рейтинг: 0 / 0
23.01.2012, 13:35
    #37626813
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает красный крестик
Allkay, читал что я писал?
Dima TПодобным образом эксель не использовал никогда, твой код не запускается просто так, сделай рабочий пример.
Есть подозрение что фокс ждет закрытия экселя на этой строке:
Код: sql
1.
XLApp.Sheets("Лист1").PrintPreview


иначе пользователь не успеет ничего посмотреть и эксель закроется строкой
Код: sql
1.
XLApp.Quit



А пока фокс ждет - закрыть его нельзя.

Проверь что фокс не подвисает на строке XLApp.Sheets("Лист1").PrintPreview
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает красный крестик / 25 сообщений из 64, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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