Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 305
от 24.06.2006, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 181, Экспертов: 28
В номере:Вопросов: 1, Ответов: 3


Вопрос № 46718: Здравствуйте, Уважаемые эксперты! Собственно, вопросов 2. По VB 6.0 Первый: В приложении несколько форм. Так вот, когда щелкаешь по крестику вверху окна, приложение не выгружается полностью, остаются формы, в момент закрытия имеющие...

Вопрос № 46.718
Здравствуйте, Уважаемые эксперты!

Собственно, вопросов 2. По VB 6.0

Первый: В приложении несколько форм. Так вот, когда щелкаешь по крестику вверху окна, приложение не выгружается полностью, остаются формы, в момент закрытия имеющие параметр Visible=False. Как это исправить, т.е. что дописать в коде.

Второй вопрос: Как сделать так, чтобы при закрытии одной формы, другая форма стала активной (Чтобы она стала поверх всех других окон), а то постоянно теряется фокус.

Спасибо за ответы!
Отправлен: 19.06.2006, 16:02
Вопрос задал: Черных Василий (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PsySex
Здравствуйте, Черных Василий!
1. Чтобы закрыть своё приложение при закрытии данного окна добавьте код в форму
------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
------------------------------------------------
2. Ну можно так
-------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
'передаем фокус нужной форме
Form1.SetFocus
End Sub
-------------------------------------------
А еще если нужно чтоб форма всегда была на верху:
-----------------------------------------------------------------------------
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40

Private Sub Form_Activate()
'где Me.hwnd это хэндл нужного окна или например Form1.hwnd
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
-------------------------------------------------------------------------------
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 19.06.2006, 23:09
Оценка за ответ: 5
Комментарий оценки:
Спасибо! То, что надо!

Отвечает: Александр Шевченко
Здравствуйте, Черных Василий!
1. В форме, по закрытию которой должно закрываться приложение надо прописать следующее:
Private Sub Form_Unload(Cancel As Integer)
Dim f as Form
For Each f In VB.Forms
Unload f
Next
End Sub
2.
Private Sub Form_Unload(Cancel As Integer)
Form1.SetFocus 'форма для активизации
End Sub
Ответ отправил: Александр Шевченко (статус: 4-ый класс)
Ответ отправлен: 20.06.2006, 13:50
Оценка за ответ: 4
Комментарий оценки:
Немного запутанно с 1 подвопросом.

Отвечает: Miklucho
Здравствуйте, Черных Василий!
А я просто в процедуру выгрузки (unload) каждой формы писал команды выгрузки всех форм:

Private Sub Form_Unload(Cancel As Integer)
unload form1
unload form2
unload form3
'и т.д.
End Sub
Ответ отправил: Miklucho (статус: Студент)
Ответ отправлен: 21.06.2006, 10:38


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное