powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как притормозить выполнение основной программы
9 сообщений из 9, страница 1 из 1
Как притормозить выполнение основной программы
    #33268835
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на время выполнения подпрограммы?

в форме на какоето событие:

...
DO "подпрограмма"
Thisform.refresh
...

форма обновляется раньше , чем подпрограмма отработает
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33268850
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ч и в о : )
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33268903
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если
Код: plaintext
DO "подпрограмма"
Это форма, то тебе ее просто нужно сделать модальной.
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33268913
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понимаю, ему просто не хватает
Код: plaintext
Read Events 
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33269271
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
DO "подпрограмма"
это конечно же не форма, это кусок программного кода который чегой то там делает - иногда довольно долго.
Фокус в том, что, как я понял, решение в этот момент распаралеливается - программа работает сама по себе - форма сама, не дожидаясь пока программа отработает. А мне бы нужны ее результаты.
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33269283
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, неможно так. АFAIK. Хотя можно, но сложно. Минимум что могу посоветовать , засунуть Doevent+thisform.Refresh() в цикл обработки или SCAN, что там у тебя :)
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33269291
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если
Код: plaintext
DO "подпрограмма"
вызывается из метода формы, то пока эта "подпрограмма" не отработает (и если она не вызывает внешнюю по отношении к VFP программу или ActiveX), то след. строка твоего метода не получит управление. И форма и "подпрограмма" работают в одном потоке.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33270056
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно подобный вопрос возникает, когда выполняется нечто вроде:

Код: plaintext
1.
2.
3.
4.
5.
ThisForm.Label1.Caption = "Идет выполнене"
ThisForm.Refresh()
DO MyProg.prg
ThisForm.Label1.Caption = "Нет выполнения"
ThisForm.Refresh()

Причем, по умолчанию, в дизайнере формы стоит "Нет выполнения".

При таком коде сообщение "Идет выполнение" просто не появится. Но дело не в том, что процесс "распаралеливается", а в том, что первый ThisForm.Refresh() ставиться "в очередь" событий и выполняется не сразу в момент подачи команды, а только по окончании всего кода текущего метода.

Это исправляется командой DOEVENTS, которая "проталкивает" все отложенные события. Примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ThisForm.Label1.Caption = "Идет выполнене"
ThisForm.Refresh()

DOEVENTS

DO MyProg.prg
ThisForm.Label1.Caption = "Нет выполнения"
ThisForm.Refresh()
...
Рейтинг: 0 / 0
Как притормозить выполнение основной программы
    #33270164
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ArDo!

Информация к размышлению - форма может обновитья и НЕ в результате твоего
Refresh(). Если критично чтобы информация в ней не изменялась - блокируй
форму тем или иным способом - а лучше сделай так, чтобы "процесс" в
процедуре не менял ничего, отображаемого непосредственно на форме.

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


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