Вопрос № 54339: Здравствуйте! Очередная проблемма! Как сделать окно модальным в Microsoft Visual Basic 6.0
Private Sub Command2_Click()
Program.Show
End Sub...Вопрос № 54377: если есть 2 формы (первая наполовину закрыта второй) как сделать чтобы при нажатии на первую форму она не всплывала над второй...Вопрос № 54400: Здраствуйте. Помогите плиз, нужны функции для генерации звуков(желательно из колонок) разной тональности(звуков разной высоты) и нужна функция(а лучше чтобы это было событие) для получения этих звуков и распознания с микрофона. Помогите плиз!...Вопрос № 54413: Здравствуйте уважаемые эксперты
Работая с Microsoft Excel и Microsoft Word, я столкнулся с одной проблемой: несколько VB операторов не работают в определенных версиях Microsoft Excel и Microsoft Word. Например: Sheets.Copy, Kill, Put (в Open test...
Вопрос № 54.339
Здравствуйте! Очередная проблемма! Как сделать окно модальным в Microsoft Visual Basic 6.0
Private Sub Command2_Click()
Program.Show
End Sub
Отправлен: 04.09.2006, 23:06
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Неверов
Здравствуйте, ataman!
Очень просто: в команду Show добавьте слово vbModal, вот как в приложении:
Приложение:
Ответ отправил: Евгений Неверов (статус: Студент)
Ответ отправлен: 05.09.2006, 00:08 Оценка за ответ: 5
Отвечает: Александр Шевченко
Здравствуйте, ataman!
В дополнение к ответу Евгения Неверова:
[имя_формы].Show vbModal, Me
Ключевое слово Me сдесь указывает, что родителем модальной формы будет являться текущая форма. Также вместо Ме можно указать любую из форм вашего проекта.
--------- Вместо внутренней почты лучше стучитесь в аську - 299739804
Ответ отправил: Александр Шевченко (статус: Студент)
Ответ отправлен: 05.09.2006, 09:11
Не оспаривая верности и полноты предыдущих ответов, предлагаю этот как пример еще одного решения:
Program.Show, 1
По умолчанию VB создает форму немодальной (0). Объявление "Program.Show" предполагает установку по умолчанию нуля, который опускается. Единицу же ставить обязательно, если форма должна быть модальной.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 6-ой класс)
Ответ отправлен: 05.09.2006, 09:23
Отвечает: Митрофанов Артем Борисович
Здравствуйте, ataman!
После кода Program.Show добавьте 0(Program.Show 0). Есть еще другой уровень модальности(1), но лично его не использую. Удачи!
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, ataman!
Form1.Show vbmodal
Form1.Show vbmodal, Form0
Form1.Show vbmodeless - этот вариант держит Вашу форму всегда наверху, но и позволяет работать с той, что под ней.
--------- Учиться никогда не поздно. Особенно программированию!
если есть 2 формы (первая наполовину закрыта второй) как сделать чтобы при нажатии на первую форму она не всплывала над второй
Отправлен: 05.09.2006, 10:57
Вопрос задал: Ars 11 www (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Михаил Александрович
Здравствуйте, Ars 11 www!
Если я правильно понял вторая форма должна быть модальной.
Тогда
Form2.Show 0, Me
--------- В Интернете всегда есть место подвигу ... даже в чатах!
Ответ отправил: Михаил Александрович (статус: 4-ый класс)
Ответ отправлен: 05.09.2006, 11:10 Оценка за ответ: 2
Отвечает: PsySex
Здравствуйте, Ars 11 www!
>>Fsl
>>Если я правильно понял вторая форма должна быть модальной.
Вы правильно поняли, но неправильно ответили кодом :-)
Вот правильный код, вызываем вторую форму из первой:
Form2.Show (1)
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 05.09.2006, 11:26
Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Ars 11 www!
Можно сделать это и так: добавить в обработку событий Form1_Click и Form1_DbClick строку Form2.SetFocus.
Пример: в программе две формы Form1 и Form2. Сделайте Form1 побольше и установите свойство StartUpPosition = 2(CenterScreen), вторую - поменьше наполовину, StartUpPosition = 1(CenterOwner). Добавьте кнопку Command1, при нажатии на которую появляется Form2 (не модальная!).
Private Sub Command1_Click()
Form2.Show
End Sub
Private Sub Form_Click()
On Error GoTo 1
Form2.SetFocus
1:
Exit Sub
End Sub
Private Sub Form_DblClick()
On Error GoTo 1
Form2.SetFocus
1:
Exit Sub
End Sub
Самое интересное: если щелкать по первой форме где угодно, кроме заголовка - она не будет находиться поверх второй. Если щелкнуть по заголовку окна - она закроет вторую. Щелкнув после этого в любом месте Form1, кроме заголовка, Вы снова активируете Form2. Интересно в этом примере то, что немодальная форма производит впечатление модальной. Может, этот фокус Вам и пригодится где-нибудь.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 6-ой класс)
Ответ отправлен: 05.09.2006, 20:28 Оценка за ответ: 4
Отвечает: Bonapart
Здравствуйте, Ars 11 www!
Через WinApi или просто
form2.setfocus иногда срабатывает
статья из учебника на эту тему
переведи
Приложение:
Ответ отправил: Bonapart (статус: 1-ый класс)
Ответ отправлен: 06.09.2006, 07:23 Оценка за ответ: 1
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Ars 11 www!
Тут решений мало: либо выведите вторую форму модально (form2.show vbmodal,form1), либо обработайте Form_Activate, Form_Click первой формы или напишите в Form_deactivate второй формы form2.setfocus. Можно еще поизголяться на АПИ обработкой сообщений, но тут это лишнее. Лучше всего выведите форму модально либо в полумодальном режиме (form2.show vbmodeless,form1) - тогда первая форма не будет перекрывать вторую, а при необходимости еще и можно поработать с первой формой - первая форма активируется, но не перекрывает
вторую форму (вторая всегда наверху).
--------- Учиться никогда не поздно. Особенно программированию!
Здраствуйте. Помогите плиз, нужны функции для генерации звуков(желательно из колонок) разной тональности(звуков разной высоты) и нужна функция(а лучше чтобы это было событие) для получения этих звуков и распознания с микрофона. Помогите плиз!
Подобная задача просто решается в FoxPro для DOS (первая часть вопроса), однако в VB будут трудности с этим. Из функций VB для работы с генерацией звука мне припоминается только Beep, которая подает короткий звуковой сигнал через спикер системного блока (если он имеется). Если встроенного динамика нет - эффекта вообще никакого. Что касается второй части вопроса - все далеко не так просто, как, возможно, Вам кажется. Выход во втором случае, я думаю - функции API для работы со звуком, какие именно и как их применить
- рассылка WinAPI.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 6-ой класс)
Ответ отправлен: 05.09.2006, 20:23
Отвечает: Bonapart
Здравствуйте, ElectronPRO!
Поищи на VBstreets.ru
там есть такая темы
Захват звука при помощи DirectX8
DirectX7_ Введение в DirectSound
как раз по второму вопросу
а к первому хочется прибавить
этот текст из учебника по WinApi
не забудь перевести
Приложение:
Ответ отправил: Bonapart (статус: 1-ый класс)
Ответ отправлен: 06.09.2006, 07:20
Вопрос № 54.413
Здравствуйте уважаемые эксперты
Работая с Microsoft Excel и Microsoft Word, я столкнулся с одной проблемой: несколько VB операторов не работают в определенных версиях Microsoft Excel и Microsoft Word. Например: Sheets.Copy, Kill, Put (в Open test For Random As #1 Len = Len(val1)) операторы работают нормально в Office 2002 и Office 2007 хотя не работают Office 2003.
Подскажите в чем дело.
За ранее спасибо
Отправлен: 05.09.2006, 15:25
Вопрос задал: Malkhazi (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PsySex
Здравствуйте, Malkhazi!
Думаю, что в Office 2003 увеличен уровень безопасности, а опасность представляют команды для работы с файлами. Может если понизить уровень безопасности(Сервис/Макрос/Безопасность) команды и заработают.
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 05.09.2006, 16:18
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Malkhazi!
Тут с безопасностью проблемы. Понизьте уровень и все должно быть нормально.
--------- Учиться никогда не поздно. Особенно программированию!