powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить, загружена ли форма не загрузив ее случайно при этом.
12 сообщений из 12, страница 1 из 1
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38025722
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню что я хочу сделать.

Например есть FormMain и есть FormSettings .

Есть некий параметр (состояние процесса).

Делаю По событию
OnParameterChanged -> FormMain.TextStatus.Text = "bla-bla-bla".

Но если например загружена FormSettings, я хочу также отображать это состояние там, т.е.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub OnParameterChanged()

FormMain.TextStatus = "bla-bla-bla".
  if (FormSettings загружена)
    FormSettings.TextStatus.Text="bla-bla-bla"
  end if
end Sub



Т.е. как "безопасно проверить", что FormSettings загружена и надо писать статус и в нее тоже?
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38025906
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

Код: vbnet
1.
not Is Nothing


?
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38026579
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знал как сделать, делал через глобальную переменную as boolean. Будет интересно если есть решение
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38026607
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms - коллекция загруженных форм
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38026970
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

в принципе это уже где-то видел, дойду до реализации - буду экспериментировать.

А вот еще общий вопрос.

Есть FormMain.
Приложение при старте всасывает настройки в params.bla.bla.itd из ini-файла (реестра - не суть) и работает согласно им.

Есть FormSetup -которая эти настройки отображает, меняет (грубо меняются параметры params.bla.bla.itd если OK/Apply)

По моей задумке FormSetup вызывается при нажатии на кнопку <Setup> в FormMain.
При закрытии должна выгружаться, а не Visible=false.

Или правильно сразу загружать, а потом делать Visible/not Visible? Но FormSetup сильно навороченная: Treeview, много Listview, сабклассинги и т.п.
Потом если User нажал <Cancel> то то чего он там наменял не должно сохраняться, т.е. если не делать Unload, то надо все данные по любому в ней перерисовывать.

Как обычно делают?
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027114
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а приложение типа MDI или SDI ?

если MDI , то можно хидить, но не забывать делать выгрузку всех форм по unload главной
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027376
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneа приложение типа MDI или SDI ?А шо це таке?

Приложение - стандартный exe.
Main() запускает главную форму.
Форма настроек запускается из-под главной модально (мож напутал в терминах - главное окно недоступно).
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027393
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77А шо це таке?
Запускаешь VB6
Tools - Options - Advanced - SDI - включаешь галочку, перезапускаешь IDE и наслаждаешься разницей между MDI и SDI
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027442
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Дебилизм какой-то.
И не совсем понимаю какое это имеет отношение к создаваемому на выходе exe-шнику и алгоритмам в нем заложенных.
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027449
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Дебилизм какой-то.
И не совсем понимаю какое это имеет отношение к создаваемому на выходе exe-шнику и алгоритмам в нем заложенных.Дим, я только ответил на процитированный вопрос. Что касается основного вопроса, то я, честно говоря, не въехал в его суть. Я вообще не понимаю, какая связь между Load/Unload via Visible=True/False и необходимостью сохранять параметры при нажатии кнопки "ОК" - на мой взгляд вопросы несвязанные.
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38027621
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Konst_One,

в принципе это уже где-то видел, дойду до реализации - буду экспериментировать.

А вот еще общий вопрос.

Есть FormMain.
Приложение при старте всасывает настройки в params.bla.bla.itd из ini-файла (реестра - не суть) и работает согласно им.

Есть FormSetup -которая эти настройки отображает, меняет (грубо меняются параметры params.bla.bla.itd если OK/Apply)

По моей задумке FormSetup вызывается при нажатии на кнопку <Setup> в FormMain.
При закрытии должна выгружаться, а не Visible=false.

Или правильно сразу загружать, а потом делать Visible/not Visible? Но FormSetup сильно навороченная: Treeview, много Listview, сабклассинги и т.п.
Потом если User нажал <Cancel> то то чего он там наменял не должно сохраняться, т.е. если не делать Unload, то надо все данные по любому в ней перерисовывать.

Как обычно делают?

В событии Аctivate формы пишешь код по заполнению ее полей значениями по умолчанию. Форму выгружай.
...
Рейтинг: 0 / 0
Проверить, загружена ли форма не загрузив ее случайно при этом.
    #38029557
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneForms - коллекция загруженных форм
Ну я так и сделал, в Google где-то нарыл.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'функция возвращает True,если форма с указанным именем загружена, в противном случае - False
'например, MsgBox(FormLoadedByName("Form1"))
Public Function FormLoadedByName(ByVal strFormName As String) As Boolean
  On Error Resume Next
  Dim i As Integer
  FormLoadedByName = False
  For i = 0 To Forms.Count - 1
    If LCase$(Forms(i).name) = LCase$(strFormName) Then
      FormLoadedByName = True
      Exit Function
    End If
  Next i
End Function



VladConnВ событии Аctivate формы пишешь код по заполнению ее полей значениями по умолчанию. Форму выгружай.
Почему в Activate? Я в Load это делаю. С Activate я один раз очень хорошо накололся - прога "иногда" вылетала, я 2 месяца не мог понять почему. Выяснилось, что Activate может стрелять больше одного раза.
И почему значениями по умолчанию? Загружать надо тек. настройками, которые у меня храняться в единственной переменной params (params.bla.bla.bla).
На счет выгружать видимо все-таки ДА, так думаю правильней, наф.. она нужна в памяти (особенно с учетом ее навороченности) если программа уже настроена.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить, загружена ли форма не загрузив ее случайно при этом.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]