powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кликом по кнопкам изменять свойство формы VBA
25 сообщений из 65, страница 2 из 3
Кликом по кнопкам изменять свойство формы VBA
    #36437507
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не в даваясь в подробности, просто скажу, как кодом сделать форму активной, как кодом сделать форму не активной?
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437510
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас в голове каша.

Опишите все то же самое, но с применением следующих терминов:

1) Доступность (разрешенность) формы - это то, может ли пользователь попасть в эту форму и что-то в ней делать (нажимать кнопки, редактировать поля)

2) Активность - форма активна, когда на ней находится фокус ввода, признаком активности формы может служить синий заголовок формы (если стандартные цвета в виндах), если форма неактивна - заголовок серый. Активной/неактивной форму делает обычно пользователь, тыкая мышкой в нее или в другое место, можно менять активности и программно, перемещая фокус ввода, например вашей командой AppActivate Application.Name

3) Модальность - если форма модальная, она не даст пользователю переместить фокус ввода на другую форму в пределах того же приложения, то есть сделать ее неактивной.

Что из этих трех пунктов вам нужно неясно на протяжении всей ветки
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437512
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailТогда пускай в ShoowModal стоит True. Как тогда кодом сделать ее не активной?

Никак. См. выше. Модальная форма подразумевает невозможность ее деактивации.

Если быть точным - никак без применения API.
Но тут надо понять, какая задача перед вами стоит, может быть можно обойтись и другими способами.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437513
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailНе в даваясь в подробности, просто скажу, как кодом сделать форму активной, как кодом сделать форму не активной?

Неактивной - например ваш AppActivate Application.Name (при условии, что форма не модальная)

Активной - например Form1.Show
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437523
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я подразумеваю неактивность формы по отношению к листу Excel, что бы на листе можно было выполнять ввод данных.
Если Модальность изменить кодом нельзя, тогда надо придумывать что-то другое…
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437527
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailЯ подразумеваю неактивность формы по отношению к листу Excel, что бы на листе можно было выполнять ввод данных .
Если Модальность изменить кодом нельзя, тогда надо придумывать что-то другое…

Я же попросил описать все в предложенных терминах.
Вы же придумали какой-то свой термин " неактивность формы по отношению к листу " и пытаетесь с его помощью чего-то объяснить.

В присланном мной файле форма не мешает выполнять на листе ввод данных , она не модальная. Этот вопрос решен. Какой вопрос не решен?
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437532
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
В присланном мной файле форма не мешает выполнять на листе ввод данных , она не модальная. Этот вопрос решен. Какой вопрос не решен?
Проще скажу, надо сделать, чтобы она при клике по кнопке мешала вводить данные.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437533
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail
Проще скажу, надо сделать, чтобы она при клике по кнопке мешала вводить данные.

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

на лист
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437535
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервис -> Защита -> Защитить лист

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

В принципе я уже об этом в середине дискуссии начал подумывать.
Короче надо обдумать. С защитой у меня многое меняется, необходимо будет кое что переделывать. Неохота…
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437537
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за терпение.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437539
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно для блокировки запустить ДРУГУЮ модальную форму (если позволяет логика) или перезапустить эту форму с опцией vbModal, если опять же позволяет логика.

Или поиграть с API
Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 0)
Только я не догнал, как получить дескриптор окна формы в VBA (Me.hwnd не работает)
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36437864
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИли поиграть с API
Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, 0)
Только я не догнал, как получить дескриптор окна формы в VBA (Me.hwnd не работает)

Ща глянул на свежую голову - TopMost - это не то, это значит, что форма всегда сверху, но это не делает ее модальной. Надо спросить у Antonary.

И еще попробовал способ отслеживать активность формы и насильно возвращать фокус при его потере. На VB мне это удавалось, а в экселе почему-то вообще не возникает событие Deactivate :(
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36438688
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я где то видал, что форму можно сделать не видимой. Такое возможно? Тогда и активность не активность мне уже будет не нужна.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36438696
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailЯ где то видал, что форму можно сделать не видимой. Такое возможно? Тогда и активность не активность мне уже будет не нужна.

Метод .Hide
Свойство .Visible
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439551
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProsegailЯ где то видал, что форму можно сделать не видимой. Такое возможно? Тогда и активность не активность мне уже будет не нужна.

Метод .Hide
Свойство .Visible
Для объекта форма VB 6.5 такого метода и такого свойства нет.
Но есть такое понятие прозрачность формы если ее вывести в 0 то она будет невидимой. А как это сделать не знаю.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439560
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailДля объекта форма VB 6.5 такого метода и такого свойства нет.

Я использовал ту форму, которую вы мне прислали, не знаю, какая у нее версия.
Откройте файл и нажмите на нижнюю кнопку на форме.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439575
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

РАБОТАЕТ
Свойство .Visible нету, а насчет Hide не знал.
Тогда покажите, как сделать видимой.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439578
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailа насчет Hide не знал.

Нет, ну вот нормально?
Я пишу "используйте метод Hide"
Вы пишете, что нет такого метода
Я показываю пример.
Вы пишете "я не знал". Ну если не знали, зачем писать, что нет такого метода? Вы мои сообщения через одно читаете или через строчку?

segailТогда покажите, как сделать видимой.

Вы не поверите! Метод.... ну догадайтесь уже сами!
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439597
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Ни чего лучше не придумал, так как форма становится невидимой, создал другую кнопку на листе и вставил код UserForm1.Show
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439600
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailShocker.Pro,
Ни чего лучше не придумал, так как форма становится невидимой, создал другую кнопку на листе и вставил код UserForm1.Show

Бинго!
Метод Hide прячет форму, метод Show показывает форму.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439605
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailСвойство .Visible нету

Тоже враки. Правда в экселе оно оказалось только для чтения, а в VB можно этим свойством управлять видимостью формы.
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439607
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Не судите строго я не программист, в основном от свойств объектов отталкиваюсь.
А если для формы установлено действие Initialize то при выполнение кода UserForm1.Show код Initialize будет выполняться, если до этого был выполнен метод Метод .Hide?
...
Рейтинг: 0 / 0
Кликом по кнопкам изменять свойство формы VBA
    #36439612
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailНе судите строго я не программист, в основном от свойств объектов отталкиваюсь .

Ну и разве сложно набрать UserForm1, нажать точку, увидеть список всех свойств и методов и от него отталкиваться ?

segailА если для формы установлено действие Initialize то при выполнение кода UserForm1.Show код Initialize будет выполняться, если до этого был выполнен метод Метод .Hide?

Нет. Initialize выполняется только при создании экземпляра класса (в данном случае формы). При скрытии/показе форма не создается заново и это событие не возникнет. Попробуйте Activate/Deactivate (правда мне не удалось поймать Deactivate в экселе)
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кликом по кнопкам изменять свойство формы VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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