powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автоматическое закрытие формы
25 сообщений из 25, страница 1 из 1
Автоматическое закрытие формы
    #36529658
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Подскажите, как сделать, чтобы при открытии формы, кликом по кнопке, она зависала на определенное количество времени, а затем сама закрывалась.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529664
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Dim d AS Date
d = DateAdd("s",Now, 10 )
Do Unlitl Now>d
Loop
Unload Me
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529669
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поторопился

Код: plaintext
1.
2.
3.
4.
Dim d As Date
d = DateAdd("s",  10 , Now)
Do Until Now > d
Loop
Unload Me
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529677
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Я так понял это переменная которое определяет время.
d = DateAdd("s", 10, Now)
не определяется "s"
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529684
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кем не определяется?
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529691
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
При открытие формы, происходит переход в редактор VBA, "s" данный параметр обозначен синим…
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529697
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529713
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Извиняюсь моя ошибка.
На прямою впихнул код в тело формы, минуя Activate.
Еще одно если постоянно кликать по крестику закрытие формы, можно вызвать автоматически ошибку.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529716
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что:

segailкак сделать, чтобы при открытии формы, кликом по кнопке, она зависала

Так что строго по ТЗ
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529742
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail, вставьте в тело цикла DoEvents.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthsegail, вставьте в тело цикла DoEvents.

Если не требуется, чтобы форма "зависала", то есть не давала ничего делать, тогда лучше таймер использовать и не гонять процессор попусту.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529753
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Я так высказался зависала, ну допустим после открытия находилась в открытом виде определенное время…
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529759
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailShocker.Pro,
Я так высказался зависала, ну допустим после открытия находилась в открытом виде определенное время…

гм. А че, в экселе нет что-ли контрола Timer?
Ну тады да - вставьте внутрь цикла DoEvents, тогда пользователь сможет хоть сам закрыть форму.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529777
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и без таймера:
Код: plaintext
1.
2.
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:10"), "ttt"
End Sub
В стандартном модуле:
Код: plaintext
1.
2.
Sub ttt()
Unload UserForm1
End Sub
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529781
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthМожно и без таймера:
Код: plaintext
1.
2.
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:10"), "ttt"
End Sub
В стандартном модуле:
Код: plaintext
1.
2.
Sub ttt()
Unload UserForm1
End Sub

Крестик с формы убрать нельзя, или вообще такое возможно?
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529784
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail,

Применил блокировку закрытие формы
Код: plaintext
1.
2.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = CloseMode =  0  'Блокировка закрытия формы
End Sub
Вроде нормально, а вообще крестик можно убрать?
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529790
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail, правильно так:
Код: plaintext
1.
2.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode =  0  Then Cancel = True
End Sub
Можно и крестик убрать, и верхнюю полоску тоже. Это уже с применением API.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529798
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,
А мой вариант блокировки ошибочный? Работает вроде нормально без сбоев…
API для меня вообще темный лес, даже не знаю что такое. Если убрать крест, это короче много делов?
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529799
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529802
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailvlth,
А мой вариант блокировки ошибочный? Работает вроде нормально без сбоев…

Это то же самое, но лучше, чтобы Вы применяли код, понимая его.
Сравните:
Код: plaintext
1.
Cancel = CloseMode =  0  
Cancel = (CloseMode =  0 ), либо If CloseMode =  0  Then Cancel = True
Выражения второй строки, думаю, прозрачней для восприятия.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529808
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,
Да Ваш код блокировки с условие правильный, своим у меня блокирует и точка.
Да. Лучше уже пусть с крестом, с VBA не разберусь а в API вообще темный лес.
Еще просьба с таймером не встречался, как вставить в лейбл секундомер с отчетом от 30 до 0
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529810
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail,

А вообще при Activate формы в текст лейбл, секундомер можно вставить?
“Примерное время загрузки 30 секунд”
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529813
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail,
Не правильно, при открытие формы.
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36529816
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailsegail,

А вообще при Activate формы в текст лейбл, секундомер можно вставить?
“Примерное время загрузки 30 секунд”

Заводите таймер на одну секунду
Application.OnTime Now + TimeValue("00:00:01"), "ttt"
Каждую секунду обновляйте время на лейбле и заводите таймер заново
...
Рейтинг: 0 / 0
Автоматическое закрытие формы
    #36530817
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте
Mожно ли как то увеличить ширину рисунка Image17.Width=219
Обратный отчет секундомера, увеличивает ширину рисунка от 0 до 219, при нулевом значение секундомера ширина рисунка уходит в 0
Dim LbTime As Integer

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Lb1Start()
  LbTime =  11 
  RunTimer
  UserForm_Time.Show
End Sub

Sub RunTimer()
  If LbTime =  0  Then
    UserForm_Time.Hide
    Exit Sub
  End If
  LbTime = LbTime -  1 
  
  UserForm1.Image17.Width =  219 
  
  UserForm_Time.Label1.Caption = "Примерное время загрузки " & LbTime & " сек."
  Application.OnTime Now + TimeValue("00:00:01"), "RunTimer"
End Sub
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автоматическое закрытие формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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