Фокус окна

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Фокус окна

Сообщение Saturn.65 » 12.02.2011 (Сб) 15:26

Написал программу из многих форм. Сперва выводится одно окно, производится ввод даных и после кнопкой включается второе окно, где производится полный расчет и вывод на форму. Но если переключиться на первое окно мышкой, а после снова на второе, то часть данных второго окна обнуляется. Мне сейчас нужно поймать Form_LostFocus Form2, что бы данные, записанные в INI считались снова, а фокус не ловится, как первым окном, так и вторым. Пробовал на новом проекте, там все нормально, а здесь нет такого.
Код: Выделить всё
Private Sub Form_LostFocus()
MsgBox "Form2_LostFocus"
End Sub

Сообщение не выскакивает. Почему это так?
И дело не только в этом. Форма не выгружается из памяти даже после этого:
Код: Выделить всё
Private Sub Form_Unload(Cancel As Integer)
Unload Form3
Unload Form2
Unload Form4
Unload Form5
Unload Form6
Unload Form7
Unload Form8
Unload Form9
Unload Log
Unload Form1

Set Form3 = Nothing
Set Form2 = Nothing
Set Form4 = Nothing
Set Form5 = Nothing
Set Form6 = Nothing
Set Form7 = Nothing
Set Form8 = Nothing
Set Form9 = Nothing
Set Log = Nothing
Set Form1 = Nothing
End
End Sub
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Фокус окна

Сообщение Хакер » 12.02.2011 (Сб) 15:30

Saturn.65 писал(а):а после снова на второе, то часть данных второго окна обнуляется.

Ну так не обнуляй.

Saturn.65 писал(а):
Код: Выделить всё
Private Sub Form_Unload(Cancel As Integer)
Unload Form3
Unload Form2
Unload Form4
Unload Form5
Unload Form6
Unload Form7
Unload Form8
Unload Form9
Unload Log
Unload Form1

Set Form3 = Nothing

За такое надо убивать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Фокус окна

Сообщение Saturn.65 » 12.02.2011 (Сб) 15:49

Хакер писал(а):Ну так не обнуляй...
За такое надо убивать.

Я не обнуляю. Да дело не совсем в этом. Фокус то почему не улавливается? Ни той формы, ни этой?
Почему же это? А как тогда из памяти выводить? Я все перерыл и везде написано Unload Form и ничего большего, с перечислением всех форм и на конце End. Только проект все равно висит в процессах. Я стал добавлять все, что только может убить процесс, но он жив.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Фокус окна

Сообщение Хакер » 12.02.2011 (Сб) 16:29

Saturn.65 писал(а):Я не обнуляю.

Обнуляешь, раз обнуляется.

Saturn.65 писал(а):Почему же это?

Почему же что?

Saturn.65 писал(а):А как тогда из памяти выводить?

Reference counting — тебе о чём-нибудь говорит?

Saturn.65 писал(а):Я все перерыл и везде написано Unload Form и ничего большего, с перечислением всех форм

Та же болезнь.

Saturn.65 писал(а): на конце End. Только проект все равно висит в процессах.

Лукавишь. Или другой процесс просто висит.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Фокус окна

Сообщение Saturn.65 » 12.02.2011 (Сб) 19:00

Хакер писал(а):Почему же что?
Reference counting — тебе о чём-нибудь говорит?

Почему MsgBox не реагирует на смену фокуса окна? Ведь в другом проекте все работает?
Reference counting мне ни о чем не говорит. Я просто хочу завершить процесс. А процесс именно этот, т.к. иконка и название файла отражается в диспетчере задач.
Главное, ребята, сердцем не стареть...

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Фокус окна

Сообщение arthur2 » 12.02.2011 (Сб) 20:05

Хакер писал(а):Лукавишь. Или другой процесс просто висит.
Думаю код до энда просто не доходит.
Saturn.65 писал(а):Почему MsgBox не реагирует на смену фокуса окна?
Это событие не происходит при передаче фокуса ДРУГОМУ приложению. В этом случае потери фокуса у твоего окна не происходит - ведь фокус в пределах твоего потока так и остался у этого окна.
Артур
 
   


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Mail.ru [бот], Yandex-бот и гости: 53

    TopList