Re: При запуске форма "проваливается" под Screen | |
---|---|
danton1973 Сообщений: 143 Откуда: Пермь Дата регистрации: 10.08.2020 |
Сейчас так:
config.fpw, подключённый в проект MVCOUNT=2048 SCREEN=ON Если сделать OFF, то программа сворачивается в трей, из которого не знаю как достать. Не видно её среди окон, только в диспетчере задач. в main.prg запуск INIT.prg close all clear * Отключаем обработку функциональных клавиш по ON KEY on key label F1 on key label F2 on key label F3 on key label F4 on key label F5 on key label F6 on key label F7 on key label F8 on key label F9 on key label F10 on key label F11 on key label F12 * Отключаем функции по умолчанию, которые могут использоваться разработчиком set function F1 to set function F2 to set function F3 to set function F4 to set function F5 to set function F6 to set function F7 to set function F8 to set function F9 to set function F10 to set function F11 to set function F12 to * Отключаем макросы VFP set mackey to clear macros * определяет, будут ли функции CDX( ), DBF( ), MDX( ) и NDX( ) возвращать полное имя файла или только имя файла с именем диска set fullpath on *Определяет, используется ли в Visual FoxPro цветовая палитра, принимаемая по умолчанию set PALETTE ON *Включает или выключает звуковой сигнал компьютера, а также устанавливает атрибуты сигнала set BELL OFF set LOGERRORS OFF &&Определяет, посылает ли Visual FoxPro сообщения об ошибках компиляции в текстовый файл set DEVELOPMENT OFF &&Предписывает Visual FoxPro сравнивать при запуске программы дату и время создания программы с датой и временем создания соответствующего скомпилированного объектного файла *Задает интервал, с которым команды, обрабатывающие записи, сообщают значения счетчика записей в переменную _TALLY set ODOMETER to 100 * Порядок сортировки русский set COLLATE to "RUSSIAN" * Показывать век в датах - 31.12.1999, 11.01.2000 set CENTURY ON * Формат времени 24 часа set HOUR to 24 * Показывать секунды в формате времени set SECONDS ON * Число десятичных знаков для расчетов set DECIMALS to 2 * Установка возможности блокировки нескольких записей set MULTILOCKS ON * Обработка сетевых блокировок set REPROCESS to AUTOMATIC * Формат даты - привычный для нас - DD.MM.YYYY SET DATE GERMAN * Использование ресурсов set RESOURCE OFF set compatible on SET memowidth to 255 * Быстро и легко решаем проблему 2000 set strictdate to 0 set century to 19 rollover 70 _THROTTLE = 0 *Определяет, будет ли Visual FoxPro отображать результаты команд. set TALK OFF *Определяет, должен ли Visual FoxPro переносить данные из текущей записи в новую запись, создаваемую командой INSERT, APPEND или BROWSE set CARRY OFF set EXCLUSIVE OFF set NOTIFY ON && Разрешает или отменяет отображение некоторых системных сообщений. set SAFETY OFF && запрет на вывод сообщения о перезаписи файла set EXACT ON &&Задает правила, согласно которым Visual FoxPro сравнивает две строки разной длины set DELETED ON *Отображает или удаляет с экрана графическую строку состояния SET Status OFF &&При выполенении программы отключаем *Определяет, должен ли Visual FoxPro отображать системные часы, и задает для их позицию в основном окне Visual FoxPro SET CLOCK OFF &&При выполнении программы отключаем SET SYSMENU OFF SET SYSMENU TO * Выгрузка всех панелек Local lnIndexForm,lnCountForm for m.lnIndexForm=1 to _screen.FormCount m.lnCountForm=_screen.FormCount _Screen.Forms[m.lnIndexForm].Hide _Screen.Forms[m.lnIndexForm].Release If m.lnCountForm=_screen.FormCount m.lnIndexForm=m.lnIndexForm+1 Endif next m.lnIndexForm=adockstate(WindowsArray) for m.lcWin=1 to m.lnIndexForm IF UPPER(RIGHT(SYS(16),3))='EXE' OR UPPER(RIGHT(SYS(16),3))='APP' Release WINDOWS &WindowsArray[m.lcWin,1] else if inlist(lower(WindowsArray[m.lcWin,1]),"standard","screen") &&что бы не закрыть окна отладки Hide WINDOWS &WindowsArray[m.lcWin,1] endif ENDIF next после DO form Welcome.scx to m.llPassword AlwaysOnTop=.F. ShowWindow=0 WidowType=1 DeskTop=.F. после проверки пароля форма закрывается do menu.mpr Если запускаю из ярлыка (путь к программе в поле "Объект" и "Рабочая папка" одинаковы) окно welcome не видно из под экрана Если запускаю из FAR, то нормально всё... |
Re: При запуске форма "проваливается" под Screen | |
---|---|
Каратаев Сообщений: 3974 Откуда: Алматы Дата регистрации: 04.12.2001 |
У меня config для пользователей включён в дистрибутив. В нём всего лишь:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: При запуске форма "проваливается" под Screen | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
И зачем все эти 100500 строк совершенно не относящихся к делу
Если задано SCREEN=OFF то главное окно фокса не будет отображаться пока не выполнится команда _SCREEN.Visible = .T. Естественно, не будет отображаться и форма которая запускается "In Screen". Если нужно добиться того чтобы Welcome запускалась как отдельная, независимая форма ВНЕ SCREEN, и при том код расположенный за DO FORM Welcome не исполнялся пока она видна, то эту форму следует сделать ShowWindow = 2 (As TopLevel Form) - форма при этом автоматически перестанет быть модальной. После DO FORM прописать команду READ EVENTS - это организует цикл обработки событий ввода. Поменять "способ общения" формы с кодом в main.prg - лучше всего создать в main объект (например от класса Custom, добавив к нему нужные свойства через метод .AddProperty() ) и передать его в эту самую форму welcome (там в Init принять, запомнить в пользовательском свойстве формы, и обращаться к нему из кнопок и других методов - где надо "установить возвращаемое значение"). Добавить в методы формы которые выполняют её закрытие команду CLEAR EVENTS - это вызовет выход из цикла обработки событий ввода, и переход к следующей по порядку команде - там уже можно будет проанализировать свойства переданного в форму объекта, и понять что же именно там произошло. Где-то далее в программе будет ещё один READ EVENTS - уже для запуска "основного" цикла обработки событий ввода - собственно работы с функционалом программы. Если всё это слишком сложно, то проще НЕ прятать главное окно - форма Welcome просто будет внутри него отображаться всегда - и работать как модальная. ------------------ WBR, Igor |
Re: При запуске форма "проваливается" под Screen | |
---|---|
danton1973 Сообщений: 143 Откуда: Пермь Дата регистрации: 10.08.2020 |
В общем дело было в "волшебных пузырьках".... в ярлыке программы стояло: "Свёрнутое в значёк" Сделал "обычный размер".
Но всё равно переделал: config.fpw, включённый в проект MVCOUNT=2048 SCREEN=OFF При старте DO form Welcome.scx AlwaysOnTop=.T. DeskTop=.T. ShowWindow=2 WindowType=1 Welcome.Uload() CLEAR EVENTS WITH goUser .AddProperty("Password") .Password=thisform.llflag ENDWITH в main.prg read events _SCREEN.Visible = .T. m.llPassword=goUser.Password |
Re: При запуске форма "проваливается" под Screen | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
DeskTop=.T. и WindowType=1 не имеют смысла для формы с ShowWindow=2 (т.е. значения этих свойств игнорируются).
Вместо использования goUser лучше передавать объект в форму. т.е.
------------------ WBR, Igor |
© 2000-2024 Fox Club  |