Добавлено: 26 Август 2004, 18:27
Hello clalist,
Есть ШВС.
Родительское - MDI Frame
Дочерние - MDI Child
В дочерних вызывается Form. По умолчанию вызывается как MDI, но это поведение меня не устраивает и делаю его НЕ MDI. Работает.
На Form размещаю CalendarLookup. Запускаю. Не работает.
При попытке вызвать календарь имею нехорошее сообщение про MDI, Application и GPF.
Думаю...
Открываю Perso_SF.clw. Нахожу определение окна CalendarWindow.
В нем вижу установленное свойство окна - MDI.
Думаю...
Открываю StdFunc.tpw. Нахожу шаблон для CalendarWindow.
Вижу:
Думаю...
Стираю нафиг MDI. Имею:
Сохраняю. Запускаю Make, потом Run и радуюсь жизни вместе с Calendar.
Однако думаю, что нехорошо это - исходники изменять...
--
Best regards,
Иван mailto:shkmail@inbox.ru
(Добавление)
Почему нельзя просто заблокировать повторный запуск нитки не снимая атрибута MDI?
С уважением,
Владимир Смелик vovs@bigfoot.com
------------------------------------------------------------
Igor Gubin (igor@quantor.com)
Quantor-Soft Metal
Phone/Fax: (+7 095) 234 4905
WEB: http://www.metaldata.info
http://www.metaldata.ru
Если используешь в приложении MDI-модель - окна должны иметь соотвествущий атрибут. Если тебе не нужна многопоточность (как для 90% задач - реально не нужно, а не просто "шоб було") - тогда убери фрейм.
--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
Мало подумал. Зачем теперь #IF вообще? А что будешь делать, когда MDI
_понадобится_?
1. Рядом с TEMPLATE создаешь папочку MyTemplate.
2. В RED файле вписываешь для шаблонов эту папочку _перед_ TEMPLATE.
3. Копируешь туда шаблон.
4. Правишь скопированный шаблон.
4.1. В описании шаблонного диалога добавляешь настройку
#PROMPT('Window type',DROP('Standard!MDI!NonMDI')),%CalendarWindowType,Default('Standard')
4.2. Тот фрагмент, что ты исправлял записываешь так:
WBR, Nick Tsigouro mailto:nick@arsis.ru
Написал: ClaList(2)
Есть ШВС.
Родительское - MDI Frame
Дочерние - MDI Child
В дочерних вызывается Form. По умолчанию вызывается как MDI, но это поведение меня не устраивает и делаю его НЕ MDI. Работает.
На Form размещаю CalendarLookup. Запускаю. Не работает.
При попытке вызвать календарь имею нехорошее сообщение про MDI, Application и GPF.
Думаю...
Открываю Perso_SF.clw. Нахожу определение окна CalendarWindow.
В нем вижу установленное свойство окна - MDI.
Думаю...
Открываю StdFunc.tpw. Нахожу шаблон для CalendarWindow.
Вижу:
Код: Выделить всё
#FIX(%Procedure,%FirstProcedure)
CalendarWindow WINDOW('Календарь'), ...
#IF(%ProcedureTemplate = 'Frame' OR ~%FirstProcedure)
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO,MDI
#ELSE
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO
#ENDIF
Стираю нафиг MDI. Имею:
Код: Выделить всё
#IF(%ProcedureTemplate = 'Frame' OR ~%FirstProcedure)
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO
#ELSE
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO
#ENDIF
Однако думаю, что нехорошо это - исходники изменять...
--
Best regards,
Иван mailto:shkmail@inbox.ru
(Добавление)
Вот с этого места - подробнее. Что именно не устраивает?В дочерних вызывается Form. По умолчанию вызывается как MDI, но это поведение меня не устраивает и делаю его НЕ MDI. Работает.
Почему нельзя просто заблокировать повторный запуск нитки не снимая атрибута MDI?
Сам догадался? :):)Однако думаю, что нехорошо это - исходники изменять...
С уважением,
Владимир Смелик vovs@bigfoot.com
Это полезноДумаю...
Молодец!Сохраняю. Запускаю Make, потом Run и радуюсь жизни вместе с Calendar.
Сделай еще один шаблон по типу существующего, зарегистрируй его и будет тебе щасье без изменения исходников.Однако думаю, что нехорошо это - исходники изменять...
------------------------------------------------------------
Igor Gubin (igor@quantor.com)
Quantor-Soft Metal
Phone/Fax: (+7 095) 234 4905
WEB: http://www.metaldata.info
http://www.metaldata.ru
Точно нехорошо.Однако думаю, что нехорошо это - исходники изменять...
Если используешь в приложении MDI-модель - окна должны иметь соотвествущий атрибут. Если тебе не нужна многопоточность (как для 90% задач - реально не нужно, а не просто "шоб було") - тогда убери фрейм.
--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
Мало подумал. Зачем теперь #IF вообще? А что будешь делать, когда MDI
_понадобится_?
Поставочные - нехорошо. Будут трудности при апгрейде. Делаешь так:Сохраняю. Запускаю Make, потом Run и радуюсь жизни вместе с Calendar.
Однако думаю, что нехорошо это - исходники изменять...
1. Рядом с TEMPLATE создаешь папочку MyTemplate.
2. В RED файле вписываешь для шаблонов эту папочку _перед_ TEMPLATE.
3. Копируешь туда шаблон.
4. Правишь скопированный шаблон.
4.1. В описании шаблонного диалога добавляешь настройку
#PROMPT('Window type',DROP('Standard!MDI!NonMDI')),%CalendarWindowType,Default('Standard')
4.2. Тот фрагмент, что ты исправлял записываешь так:
Код: Выделить всё
#CASE(%CalendarWindowType)
#OF ('Standatd')
#IF(%ProcedureTemplate = 'Frame' OR ~%FirstProcedure)
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO,MDI
#ELSE
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO
#ENDIF
#OF ('MDI')
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO,MDI
#OF ('Non MDI')
ALRT(DownKey),ALRT(HomeKey),ALRT(EndKey),TILED,GRAY,DOUBLE,MASK,AUTO
#ELSE
#ERROR('Unexpected value in %%CalendarWindowType: ' & %CalendarWindowType)
#ABORT
#ENDCASE
Написал: ClaList(2)