powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Main
23 сообщений из 23, страница 1 из 1
Main
    #33329110
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Screen.Visible= .F.

PUBLIC nForm
IF Type ("_VFP.Forms('parol')")="U"
DO FORM c:\MyPrj\parol.scx NAME nForm linked
READ EVENTS
ENDIFNo okazivaetsiya zapusk formu neskolko raz.Chto delat?
...
Рейтинг: 0 / 0
Main
    #33329112
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
READ EVENTS - убирать пробовал?
...
Рейтинг: 0 / 0
Main
    #33329126
Gray Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A bez Read Events forma ne budet zaqruzitsiya.(eqo ne budet vidno)
...
Рейтинг: 0 / 0
Main
    #33329131
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DO FORM c:\MyPrj\parol.scx NAME nForm linked NOREAD
пробуй
...
Рейтинг: 0 / 0
Main
    #33329136
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Poprobibal ne poluchilois.
...
Рейтинг: 0 / 0
Main
    #33329152
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тебе linked?
...
Рейтинг: 0 / 0
Main
    #33329172
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ya zdelal parol.scx, eto qlavnaya vxod v bazu.No ya xochu chto koqda Click zdelayu na ikonku forma parol.scx zaqruzilsiya tolko 1 raz.Vnutri proqrammi etot kod srabotaet.No a v qlavnom proqramme ne rabotaet.Vot i vsyo
...
Рейтинг: 0 / 0
Main
    #33329177
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем. тебе надо прописать так

_Screen.Visible= .T.

*PUBLIC nForm
IF Type ("_VFP.Forms('parol')")="U"
DO FORM c:\MyPrj\parol.scx
ENDIF
READ EVENTS
...
Рейтинг: 0 / 0
Main
    #33329208
Gray Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Net brat proqramirovanie eto ne uqadayka.Ne podxodit prodiotsiya jdat Vladimira Maksimova.Sposibo za pomosh.
...
Рейтинг: 0 / 0
Main
    #33329210
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я усебя так делал и все похало!
...
Рейтинг: 0 / 0
Main
    #33329214
Gray Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U menya ne rabotaet.Forma Zapuskaetsiya eshyo raz.I stati ya ne xochu rabotat _Screen.visable = .T. Eto ne dlya menya.
...
Рейтинг: 0 / 0
Main
    #33329216
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vobshe to tvoe podxod k temam mne nravitsiya.Ochen aktiven v forume.
...
Рейтинг: 0 / 0
Main
    #33329228
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что хоть программа то должна делать в принципе?

Может мой пример поможет ?
...
Рейтинг: 0 / 0
Main
    #33329259
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, сначала разберем, что именно делает твой код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
_Screen.Visible= .F.

PUBLIC nForm
IF Type ("_VFP.Forms('parol')")="U"
	DO FORM c:\MyPrj\parol.scx NAME nForm linked
	READ EVENTS
ENDIF

Я так понимаю, что форма пароля - это As Top-Level форма (иначе нет смысла в _Screen.Visible= .F.). FoxPro выполняет код последовательно. Сверху вниз. Теперь смотрим, что мы имеем.

Объявили глобальную переменную nForm

Проверяем, существует ли форма со свойством Name='parol'. При самом первом запуске ее разумеется нет.

Переходим на оператор ENDIF и завершаем программу

Почему это работало в режиме отладки? Ну, ты, видимо, заранее запустил где-то форму пароля. Т.е. ДО вызова главной проги форма уже существовала.

Теперь, как этот код надо подправить, чтобы он заработал. А очень просто:

Код: plaintext
1.
2.
3.
_Screen.Visible= .F.
DO FORM parol.scx
READ EVENTS

ВСЕ! Все остальное - лишнее. Как эта штука будет работать:


При открытии программы, запускаем форму пароля. Если пароль неверен, то при закрытии формы даем команду CLEAR EVENTS. Если пароль верен, то просто закрываем форму без вопросов.

Команда READ EVENTS будет "держать" приложение в открытом состоянии.

Если у тебя все приложение строится на базе As Top-Level форм и форма пароля - это главная форма, то сделай на этой форме глобальный PageFrame из 2 закладок (сами закладки спрячь PageFrame.Tabs = .F.). На первой - ввод пароля, на второй основное меню приложения. Если пароль введен правильно, то просто открываешь вторую закладку, если неверно, то закрываешь форму.

Если основная форма - это другая форма (НЕ форма пароля), то можно сделать так:

Код: plaintext
1.
2.
3.
4.
_Screen.Visible= .F.
DO FORM MainForm.scx NOSHOW
DO FORM parol.scx
READ EVENTS

Первая форма активизируется только если пароль правильный (в самой форме пароля). Или вообще вызывать ее при выходе из формы пароля. Поскольку формы As Top-Level по определению не могут быть модальными, то "подвисание" формы пароля при этом не произойдет.

PS: Приложения на базе As Top-Level форм практически ничем не отличаются от приложений, построенных в основном окне FoxPro. Разница лишь в том, что приходится самостоятельно проектировать основное окно приложения. Т.е. программно - это сложнее. Суть та же самая.
...
Рейтинг: 0 / 0
Main
    #33329276
Gray Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A ya dumal vi zavtra otvetite.Oto vsyo ok Vladimir.Osobenno pro PageFrame.Tabs = .F No zadacha v tom chto koqda kliknu znashok naprimer parol.exe zapuskaetsiya forma.Net problema.A koda snova kliknu eshyo raz zapuskaetsiya forma, i ya imeyu uje 2 otkritoqo parol.exe.Ya xochu chto parol.exe zapuskalsiya tolko odin raz za odnoqo click - a. Esli parol pravilniy zapuskalsiya druqoe forma ,esli net toqda set focus txtperol i dalshe..
Spasibo
...
Рейтинг: 0 / 0
Main
    #33329284
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идет о предотвращении повторного открытия одного и того же приложения? Т.е. одновременно на одной машине нельзя запустить 2 копии одного и того же приожения?

Так в пределах одной среды FoxPro это не решается. Каждый запуск parol.exe вызовет открытие новой (независимой) среды FoxPro. Каждая из них просто ничего не знает про другую.

Тут нужны способы, опирающиеся на внешние (по отношению к текущей среде FoxPro) процессы или объекты.

Простейшее решение - это создать на клиенте служебную таблицу и при открытии приложения пытаться ее блокировать. Удалось - работаем дальше, не удалось - есть открытое приложение, переключаемся на него и закрываем текущее приложение.

Можно записать в эту таблицу имя главной формы приложения (или лучше хендл этой формы) и по ней сделать переключение через API-функции. FoxPro может читать и заблокированные записи. Главное, чтобы служебная таблица была открыта в режиме Shared.

Вообще-то, сделай поиск по данному форму по ключевому слову "mutex". Было неоднократное обсуждение подобной проблемы.

Кроме того, по ссылке Sergey Ch посмотри его функцию AppAlreadyRunning(). Она как раз и проверяет факт повторного запуска приложения. Правда, фокус на существующее приложение не переводит.
...
Рейтинг: 0 / 0
Main
    #33329293
Gray Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sposibo vsem
...
Рейтинг: 0 / 0
Main
    #33346369
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Владимир!

Да уж, 15 сообщений требуется для того чтобы задать простейший вопрос про
повторный запуск :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Main
    #33347695
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi Iqor.
Mojet vi obyasnite......
...
Рейтинг: 0 / 0
Main
    #33348960
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi GrayFox!

Коенчно нет!
Вообще-то, сделай поиск по данному форму по ключевому слову "mutex".
Было неоднократное обсуждение подобной проблемы
Если уж вам лень нажать пару кнопок, то мне и подавно неинтересно ваши
проблемы решать.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Main
    #33349237
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Net oto ne chesno.Esli vi deystvitelno xotite pomaqat to pomoqite.Esli net ne nato komu to repliku vstavit.
...
Рейтинг: 0 / 0
Main
    #33351484
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi GrayFox!

1) Моё первое сообщение в данной теме было адресовано не вам, в чём легко
убедится. Т.е. лично вашей реакции на него я и не ожидал.
2) Я не понимаю чего ещё нужно объяснять, если выше Владимиром был дан
исчерпывающий ответ.
3) Как говорится правильно заданный вопрос - это уже половина ответа. Вы же
к сожалению на протяжении практически всей ветки задавали неправильный
вопрос
и соответственно получали на него неправильный ответ.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Main
    #33351661
GrayFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!!!!!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Main
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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