powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ввод переменных
6 сообщений из 6, страница 1 из 1
ввод переменных
    #34698111
Mr. Orange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как сделать так, чтобы данные введеннные в форме X, можно было использовать в форме Y, когда форма X уже закрыта?
...
Рейтинг: 0 / 0
ввод переменных
    #34698115
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменная Public объявленная на уровне модуля
...
Рейтинг: 0 / 0
ввод переменных
    #34698319
Dick Johnson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr. Orangeкак сделать так, чтобы данные введеннные в форме X, можно было использовать в форме Y, когда форма X уже закрыта?
big-dukeПеременная Public объявленная на уровне модуля

И на Form_Unload присваивать все необходимые данные глобальным переменным.
...
Рейтинг: 0 / 0
ввод переменных
    #34698982
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше глобальных переменных неиспользовать и привыкнуть обходиться без них сразу.
Вот пример как вернуть введенную строку из модальной формы.
Form2 (вызываемая):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim OkExit As Boolean

Public Function ShowDialog() As String
   OkExit = False
   Me.Show vbModal      'Здесь выполнение процедуры останавливается и ждет выгрузки или сокрытия окна
   If OkExit Then
      ShowDialog = Text1.Text
   End If
   Unload Me
End Function

Private Sub btnOK_Click()
   OkExit = True
   Me.Hide
End Sub

Form1 (вызывающая):
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub btnForm2_Click()
   Dim s As String
   s = Form2.ShowDialog
   If s <> "" Then
      MsgBox s
   End If
End Sub

Если надо вернуть несколько полей данных, то передавать какую-л. структуру данных. Например рекордсет или пользовательский тип данных.
Вот пример возврата данных из диалога в вариантной переменной (грубый способ но без глобальных переменных):
Form3:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim OkExit As Boolean
Dim RetValue As Variant

Public Function ShowDialog(ByRef v As Variant) As Boolean
   OkExit = False
   RetValue = v
   Me.Show vbModal      'Здесь выполнение процедуры останавливается и ждет выгрузки или сокрытия окна
   ShowDialog = OkExit
   v = RetValue
   Unload Me
End Function

Private Sub btnOK_Click()
   OkExit = True
   RetValue( 1 ) = Text1.Text
   RetValue( 2 ) = Text2.Text
   Me.Hide
End Sub
Form1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub btnForm3_Click()
   Dim v As Variant
   ReDim v( 2 )
   
   If Form3.ShowDialog(v) Then
      MsgBox v( 1 ) & vbCrLf & v( 2 )
   End If
End Sub
...
Рейтинг: 0 / 0
ввод переменных
    #34699433
Mr. Orange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что такое переменная Public? ее надо объявить в модуле?
...
Рейтинг: 0 / 0
ввод переменных
    #34699439
Mr. Orange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, туплю. просто хотел узнать, чем она отличается от других переменных. кроме глобальности конечно.
в модуле нужно прописать, как обычно:
Dim ... As ...

я правильно понял? модуль сам загружается, когда запускаешь программу?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ввод переменных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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