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

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

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

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

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

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

А страничка просмотра в Excel, считается за модальную форму?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37622454
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayА страничка просмотра в Excel, считается за модальную форму?
За модальную форму считается только модальная форма :)
Отсюда не видно что там за "страничка просмотра в Excel" у тебя. Как именно эксель используется?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #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
Не работает красный крестик
    #37622496
Попробуй закомментировать
Код: vbnet
1.
XLApp.DisplayAlerts=.f. 


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

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

XLApp.DisplayAlerts=.f.

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


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



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

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

ну и покажите что у Вас в Destroy и QueryUnload формы
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37623473
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А про ON SHUTDOWN никто читать доки не пробовал ?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #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
Не работает красный крестик
    #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
Не работает красный крестик
    #37626726
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Allkay,

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

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

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


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



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

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


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