Какое-нибудь свойство форм

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Какое-нибудь свойство форм

Сообщение angelina » 29.07.2005 (Пт) 10:20

Добрый день
Вопрос в следующем - есть приложение, в нем формы (что естественно :)) Некоторые из них - модальные. Все полностью устраивает, кроме одного возникшего недавно но

возникла необходимость оповещать пользователей о тех или иных событиях некоторой вылетающей формочкой. Она не должны быть модальной (эти сообщения можно и минимизировать), но иметь возможность вылетать при любых обстоятельствах - вне зависимоти от того, с какой формой сейчас работает пользователь. Вот и проблема - пользователь сидит в модальной форме, нужно чтобы вылетела немодальная -> ошибка.

Посоветуйте пожалуйста, наверняка были уже у некоторых из вас преценденты, когда нужно чтобы модальность формы выполнялась для всех, кроме одного окна. Как выкручиваются? Может есть возможность симитировтаь модальность для других окон каким-либо образом и не имитировать для окна с сообщениями?

Заранее благодарна за ответ

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2005 (Пт) 10:31

В методе Show есть второй параметр, родитель формы. Поверх модальной формы может быть открыто немодальное окно с другим родителем (немодальным). Это не всегда применимо, но иногда помогает.

P.S. Я не понял, а чем не устраивают модальные окна?
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Какое-нибудь свойство форм

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 10:34

angelina писал(а):Как выкручиваются? Может есть возможность симитировтаь модальность для других окон каким-либо образом и не имитировать для окна с сообщениями?


А если не мудрить и просто запускать другой ма-а-ленький exe-шник из которого и выводить данное сообщение (его можно передавать в командной строке) поверх всех окон?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Re: Какое-нибудь свойство форм

Сообщение _Мика_ » 29.07.2005 (Пт) 10:37

Andrey Fedorov писал(а):
angelina писал(а):Как выкручиваются? Может есть возможность симитировтаь модальность для других окон каким-либо образом и не имитировать для окна с сообщениями?


А если не мудрить и просто запускать другой ма-а-ленький exe-шник из которого и выводить данное сообщение (его можно передавать в командной строке) поверх всех окон?


Это называется не мудрить??? :D :shock:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 29.07.2005 (Пт) 10:42

что-то не получается
есть mdi форма mdiform1
дочерняя ее форма form7
открываю модально form3 - не дочерняя mdi
form3.show 1

пытаюсь открыть немодально недочернюю form 35 поверх недочерней модальной form3

пишу
set f=new form35
load f
f.lbtext="текс сообщения"
f.show 0, mdiform1 - ошибка

экспениментирую
f.show 0, form7 - ошибка

что не так я поняла

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 29.07.2005 (Пт) 10:44

другой exe-шник - уже экспериментировала
все ок, однако

проект развивается и растет и может возникнуть необходимость из этого окна сообщений переходить на какие-либо ссылки внутри моего проекта

а вот это уже будет мудрить так мудрить

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Какое-нибудь свойство форм

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 10:45

_Мика_ писал(а):Это называется не мудрить??? :D :shock:


По крайней мере это просто, быстро и 100% будет работать.
А другие варианты надо искать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 10:50

angelina писал(а):проект развивается и растет и может возникнуть необходимость из этого окна сообщений переходить на какие-либо ссылки внутри моего проекта

а вот это уже будет мудрить так мудрить


Вообще вопрос интересен. Нечто подобное реализовано в Outlook-2003 в окне сообщения о пришедшем письме появляющемся рядом с иконкой в трее...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2005 (Пт) 10:51

Если у тебя есть MDI-форма, то все ее дочерние окна должны открываться немодально: Load frmChild, frmChild.Show , MDIMain.
Модальными окнами при этом могут быть только диалоги: frmOptions.Show vbModal, frmChild (родитель - MDIChild). Окно нужного тебе типа открывается примерно так: frmNotice.Show (без родителя).
Правда я это не проверял, но что-то подобное я делал. А почему модальное окно не подходит?
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 10:54

alibek писал(а):Правда я это не проверял, но что-то подобное я делал. А почему модальное окно не подходит?


Для данной цели хочется немодального - чтобы можно было закончить текущий ввод, к примеру, а уже потом нажать на кнопочку/ссылку в данном окне...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2005 (Пт) 10:57

Еще один вариант :)
При запуске открывается два немодальных окна -- одно обычное, MDIMain, другое невидимое, frmNoticeParent. Когда надо отобразить уведомления, показывается frmNotice.Show vbModal, frmNoticeParent. Коряво правда, но должно работать.
Lasciate ogni speranza, voi ch'entrate.

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 29.07.2005 (Пт) 11:02

все дочерние я открываю немодально

есть не дочерние - просто формы - вот их открываю модально
form.show 1

без указания родителя над кем именно она модальна
более того, вот попыталась я открыть модально над формой-ребенком form.show 1, formchild - ругается

form.show 1, mdiform1 - разрешает

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 11:02

alibek писал(а):Еще один вариант :)
При запуске открывается два немодальных окна -- одно обычное, MDIMain, другое невидимое, frmNoticeParent. Когда надо отобразить уведомления, показывается frmNotice.Show vbModal, frmNoticeParent. Коряво правда, но должно работать.


Невидимое потом не показать :(

Может быть окно без бордюра свернутое в точку за пределами экрана, а когда надо показать, то разворачиваем...? Надо пробовать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Какое-нибудь свойство форм

Сообщение codemaster » 29.07.2005 (Пт) 11:02

angelina писал(а):Добрый день
возникла необходимость оповещать пользователей о тех или иных событиях некоторой вылетающей формочкой.


Если требуется обрабатывать ошибки при вводе в поля формы то
лучше пользовать ToolTip для полей + менять цвет поля.
//<-
Mit freundlichen Grüßen
//->

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Какое-нибудь свойство форм

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 11:08

codemaster писал(а):Если требуется обрабатывать ошибки при вводе в поля формы то лучше пользовать ToolTip для полей + менять цвет поля.


Как я понял это не ошибки, а некое событие, например: "на склад поступили валенки - поработаем с ними?"...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 29.07.2005 (Пт) 11:24

Может это и понятно, но что бы закончить ввод на форме поверх нее можно выводить vbModeless.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 11:24

Вывести при открытом модальном на передний план немодальное окно под сообщение удалось легко, вот только активным оно не становится (то есть не будут работать и кнопки на нем)...

Но это можно обойти - отслеживать положение курсора на экране и ловить клики мышки...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 29.07.2005 (Пт) 11:44

Можно создать окно с помощью апи, ему будет пофиг на модальные формы. Правда обрабатывать события тоже придется через апи.
На planetsourcecode.com есть хороший пример, искать CreateWindow.

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 29.07.2005 (Пт) 11:46

не работает у меня вывод немодального окна через show 0,form
попробавала и скрытую форму и нескрытую - упрямо нельзя выводить немодальное окно поверх модального

хорошо, понятно
вопрос - как вывести хотя бы под модальное окно - чтобы сразу в свернутое состояние - так ведь я не претендую на поверх модального окна

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 11:52

В общем, приложен примерчик-заготовка показывающий немодальное окно сообщения внизу окрана при открытом модальном. Но это именно заготовка - надо довести до ума. То есть субкласить события мыши и ловить нажатие на кнопку/ссылку над формой сообщения... Ну и с положением формы на экране (это уже просто). Кто нибудь может довести до ума, а то у меня сейчас времени миниум, а вопрос интересней чем многие...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Какое-нибудь свойство форм

Сообщение codemaster » 29.07.2005 (Пт) 12:10

Andrey Fedorov писал(а):
codemaster писал(а):Если требуется обрабатывать ошибки при вводе в поля формы то лучше пользовать ToolTip для полей + менять цвет поля.


Как я понял это не ошибки, а некое событие, например: "на склад поступили валенки - поработаем с ними?"...


тогда проще реализовать аля MS Outllook:

новые сообщения сопровождается
появлением прозрачной форма с " закреплением"
//<-
Mit freundlichen Grüßen
//->

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 12:34

Andrey Fedorov писал(а):В общем, приложен примерчик-заготовка

Забыл файл приложить... Прикладываю...
Вложения
MscNM.rar
(7.57 Кб) Скачиваний: 23
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 29.07.2005 (Пт) 15:10

вот так вроде как надо

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 15:21

Bonesnapper писал(а):вот так вроде как надо


Не - все работает нелогично. Попробуй, к примеру, закрыть вторую форму когда все открыты... Не надо дисаблить форму. Нужно сделать как писалось выше - с модальной формой...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 29.07.2005 (Пт) 15:33

ну там просто пример вот можешь закрыть 2 форму
так 2 форма как модальная получается

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.07.2005 (Пт) 15:38

Bonesnapper писал(а):ну там просто пример вот можешь закрыть 2 форму
так 2 форма как модальная получается


Да не надо как - надо модальную.
Никто не захочет менять код в приложении в котором под сотню форм, добавлять всяческие Enabled = False и Enabled= True для этих форм в кучу мест...

Мой пример работает как надо, его лишь надо доработать - я писал что...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 30.07.2005 (Сб) 11:40

ну субкласить события мыши наверное легче :roll:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 141

    TopList