Страница: 1 |
Страница: 1 |
Вопрос: Не выгружается проект
Добавлено: 13.07.04 10:37
Автор вопроса: Оллл
Народ, подскажите пожалуйста - как средствами ВБ6.0 определить, какая из форм проекта осталась загруженной. Уже голову сломал просматривая исходники - ничего не могу найти, но когда выхожу из экзешника, по Alt+Ctrl+Del видно, что он не выгружен из памяти!
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 13.07.04 10:53
Не забывай про поиск по форуму!
Public Function IsFormLoaded(ByVal sFormName As String) As Boolean ' Возвращает загружена ли форма
 im i_l As Integer
For i_l = 0 To Forms.Count - vbNull
If sFormName = Forms(i_l).Name Then IsFormLoaded = True: Exit Function
Next
End Function
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 13.07.04 10:53
Не забывай про поиск по форуму!
Public Function IsFormLoaded(ByVal sFormName As String) As Boolean ' Возвращает загружена ли форма
 im i_l As Integer
For i_l = 0 To Forms.Count - vbNull
If sFormName = Forms(i_l).Name Then IsFormLoaded = True: Exit Function
Next
End Function
Номер ответа: 3
Автор ответа:
rx
ICQ: 310731115
Вопросов: 10
Ответов: 45
Web-сайт:
Профиль | | #3
Добавлено: 13.07.04 10:53
Smisl v tom 4to "FormX.hide" prja4et formu, a ne zakrivejet ejo!
Tak 4to jesli u tebja boleja 1x formi i ti nazhimajesh "x" na odnu iz nih - vtoraja vsjo esho otkrita - i projekt NE zaver6on...
Dzelaj tak:
Unload <nazvanije formi> i.t.d. (dlja vshe form)
Or Vospolzujsja komandoi End
Номер ответа: 4
Автор ответа:
Оллл
Вопросов: 41
Ответов: 43
Профиль | | #4
Добавлено: 13.07.04 12:11
>HW.T-K.RU
Спасибо, сразу определил и нашел где собака зарыта. Но не могу программно закрыть форму, не срабатывает ни
If sFormName = Forms(i_l).Name Then Unload Forms(i_l).Name
ни
If sFormName = Forms(i_l).Name Unload sFormName
В чем тут дело?
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 13.07.04 12:16
Оллл )
Ник не вверху, ник слева ))
дай код, если жалко весь код, то дай:
Form_(Query)Unload
И код, который ты исполняешь после выгрузки...
Возможно ты обращаешься к какому-нить свойству выгруженной формы... в результате чего она загружается снова...
Попробуй в Form_Load вставить MessageBox, если он выскочит несколько раз, значит она выгружается, но потом опять загружается...
Номер ответа: 6
Автор ответа:
Оллл
Вопросов: 41
Ответов: 43
Профиль | | #6
Добавлено: 13.07.04 13:22
Совершенно верно, благодаря твоей процедуре нашел, что случайно обращался к свойству неактивной формы и в результате она, видимо, загружалась в фоне.
Теперь я в конце головного модуля вставил:
Dim sFormName As String
For ii = 1 To 12
sFormName = "Form" + Trim(Str(ii))
yes_line = IsFormLoaded(sFormName)
Next
А в твоей проц. заменил
If sFormName = Forms(i_l).Name Then
MsgBox "НЕ ВЫГРУЖЕНА ФОРМА " + Forms (i_l).Name, vbOKOnly + vbCritical, "Ошибка!"
Unload Forms(i_l).Name
endif
Отрабатывает без ошибок, активную форму находит, но не выгружает ее почему-то
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 13.07.04 13:59
Ищи дальше... см. че используешь...
Тут я мало чего смогу сказать не видя что где и как происходит