Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Label формы не успевает прогрузиться / 11 сообщений из 11, страница 1 из 1
19.08.2013, 15:52
    #38370834
SiNtez_26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Всем добрый день.

Вообщем, есть фрагмент кода, который открывает юзер форму, прописывает в лейбл значение и запускает на выполнение хранимую процедуру с сервера:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Load Form
Form.Caption = "Form test caption"
Form.Label1.Caption = "Please, wait..."
Form.Show
On Error GoTo serverError
DoCmd.OpenQuery "Query", acViewNormal, acEdit
On Error GoTo 0
Form.Hide
Unload Form


но проблема в том, что значение лейбла не успевает прогрузиться и на время работы процедуры пользователь видит только пустующее окно формы с заголовком. Есть какой-либо способ исправить это?
...
Рейтинг: 0 / 0
19.08.2013, 16:01
    #38370856
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Form.Refresh
...
Рейтинг: 0 / 0
19.08.2013, 16:04
    #38370862
SiNtez_26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Хм, для моей пользовательской сего метода нет...
...
Рейтинг: 0 / 0
19.08.2013, 16:05
    #38370865
SiNtez_26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Я имею ввиду форму, созданную средствами VBA
...
Рейтинг: 0 / 0
19.08.2013, 16:08
    #38370874
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
doevents
после show
...
Рейтинг: 0 / 0
19.08.2013, 16:11
    #38370884
SiNtez_26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Отлично, спасибо, все прекрасно работает.
...
Рейтинг: 0 / 0
19.08.2013, 17:22
    #38370995
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
SiNtez_26Хм, для моей пользовательской сего метода нет...Попробуйте Form.Repaint после Show.
инструкцией DoEvents следует пользоваться крайне осторожно, осознавая, что делаешь
...
Рейтинг: 0 / 0
19.08.2013, 17:50
    #38371022
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
SiNtez_26не успевает прогрузиться
специально для Ципиховича: не в том дело, что не успевает, а в том, что код продолжает выполняться, не давая возможности для прорисовки формы (она может и час висеть непрорисованной, дело не во времени). Нужно либо принудительно обновить (Repaint), либо дать возможность форме прорисоваться (DoEvents или таймер).

Я уже как-то запрещал тебе писать в чужих топиках, ты вроде образумился тогда, но сейчас, видимо, опять пора принимать меры.
...
Рейтинг: 0 / 0
19.08.2013, 17:52
    #38371025
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Shocker.ProSiNtez_26Хм, для моей пользовательской сего метода нет...Попробуйте Form.Repaint после Show.
инструкцией DoEvents следует пользоваться крайне осторожно, осознавая, что делаешьRepaint медленней.

А в чем опасность DoEvents?
...
Рейтинг: 0 / 0
19.08.2013, 17:56
    #38371031
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
AntonariyRepaint медленней.

А в чем опасность DoEvents?не настолько медленней, чтобы заметить разницу на глаз

DoEvents может пропустить вперед какое-то событие (например пользовательское нажатие кнопки, мы же не знаем, что у автора за код перед вызовом формы), которое программист не ожидает, и которое может внести перекос в работе (например, закрыть форму, которая вызвала DoEvents), поэтому лучше максимально ее избегать неопытному программисту.
...
Рейтинг: 0 / 0
19.08.2013, 18:15
    #38371065
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Label формы не успевает прогрузиться
Shocker.ProAntonariyRepaint медленней.

А в чем опасность DoEvents?не настолько медленней, чтобы заметить разницу на глазВ цикле заметна даже на сильно подслеповатый глаз. При DoEvents перерисовывается лишь та часть окна, которую нужно перерисовать, а Repaint мало того, что перерисовывает всё, так еще и теребит объектную модель.

Shocker.ProDoEvents может пропустить вперед какое-то событиеЭто называется дуть на холодное.
Если начинающему стоит использовать DoEvents с осторожностью, то Repaint лучше вообще не использовать, чтобы не возникало дурных привычек.

Shocker.Proкоторое программист не ожидаетКак правило начинающий программист ожидает противоположного: "я тыркаю, а оно не отвечает и вообще висит".
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Label формы не успевает прогрузиться / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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