Как выяснить что окно пора закрыть при завершении приложения
если окно открыто уже после cобытия EVENT:CloseDown
суть - есть глобальный класс, разрушение его происходит по Destruct
в работе класс юзает окна, и плюс к этому
во время разрушеня класс использует еще окна потому что нужен ACCEPT
(таймеры там работают записывается некая инфа в файлы)
тоесть пока незакроются окна от этого глобального класса
окна процедур через которые пишется инфа в файлы должны быть тоже открыты.
И еще, как незакрыть окно (продолжить ACCEPT) при наступлении события EVENT:CloseDown
но не запрещая это событие для других окон.
К примеру фрейм незакрывается если в другом окне на EVENT:CloseDown прописываем CYCLE
возможно есть некая инфа в клаше по этому поводу, ориентируясь на которую можно бы это разрулить
(разрушиь класс до EVENT:CloseDown - неустраивает)
Как выяснить что окно пора закрыть при завершении приложения
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
Re: Как выяснить что окно пора закрыть при завершении приложения
я не понял о чем речь 
кажется, что дело в не в ловле события, а в организации класса, тут возможно необходим еще один класс, который будет работать в самом окне и глобальная очередь окон, ...

кажется, что дело в не в ловле события, а в организации класса, тут возможно необходим еще один класс, который будет работать в самом окне и глобальная очередь окон, ...
по аэродрому...
-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 12 Декабрь 2008, 12:09
- Откуда: Верхний Уфалей
- Контактная информация:
Re: Как выяснить что окно пора закрыть при завершении приложения
решилось просто 
привожу урезанный код

привожу урезанный код
Код: Выделить всё
SavedLogClass.Ask PROCEDURE
SSMessageslog FILE,DRIVER('ASCII'),CREATE
R RECORD
Line STRING(SAVED_LOG_LINE_SIZE)
END
END
SaveLog_Window WINDOW,AT(-1,-1,1,1),TIMER(20),IMM,GRAY,TOOLBOX,DOUBLE ! ,TOOLBOX
END
Lok:Thr LONG
Lok:I LONG
Loc:TimerOutDate LONG
Loc:CurrDate LONG
CODE
Loc:CurrDate = TODAY()
Lok:Thr = THREAD()
DO LocOpenFile
SELF.SSLog.RegisterLogFile(SELF.LogFilePref, Lok:Thr, SELF.DisableLog)
! ларчик просто открывался
LOOP
DO LocAcceptWindow
IF Glo:FileLogProcessKill = 1 THEN BREAK.
END
!
DO SaveLogToFile
SELF.SSLog.UnRegisterLogFile(SELF.LogFilePref)
CLOSE(SSMessageslog)
RETURN
LocAcceptWindow ROUTINE
OPEN(SaveLog_Window)
ACCEPT
CASE EVENT()
OF EVENT:OpenWindow
Lo# = SaveLog_Window{PROP:Handle}
r# = ShowWindow(Lo#,0)
OF EVENT:Timer
DO SaveLogToFile
IF Glo:FileLogProcessKill = 1 THEN BREAK.
OF EVENT:CloseDown OROF EVENT:CloseWindow
BREAK
END
END
CLOSE(SaveLog_Window)