Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Не выгружается проект Добавлено: 13.07.04 10:37  

Автор вопроса:  Оллл
Народ, подскажите пожалуйста - как средствами ВБ6.0 определить, какая из форм проекта осталась загруженной. Уже голову сломал просматривая исходники - ничего не могу найти, но когда выхожу из экзешника, по Alt+Ctrl+Del видно, что он не выгружен из памяти!

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 13.07.04 10:53
Не забывай про поиск по форуму!

Public Function IsFormLoaded(ByVal sFormName As String) As Boolean ' Возвращает загружена ли форма
    ;Dim 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-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 13.07.04 10:53
Не забывай про поиск по форуму!

Public Function IsFormLoaded(ByVal sFormName As String) As Boolean ' Возвращает загружена ли форма
    ;Dim 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-сайт: erix.times.lv
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 13.07.04 13:59
Ищи дальше... см. че используешь...
Тут я мало чего смогу сказать не видя что где и как происходит :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам