Помогите передать данные из одной формы в другую

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Помогите передать данные из одной формы в другую

Сообщение Xaker_S » 11.04.2003 (Пт) 3:06

:) Привет народ, еще вопросик возник.
Я создал 2 формы.
Короче требуется их как-то связать.
Во второй форме есть кнопка, на первой есть TextBox и там число.
Как сделать так, чтобы при нажимании на кнопку число вычиталось или еще что.
И потом: при закрытии 2 окна форма2 выгружается. Как ее закрывать, но не выгружать?
Вот такие дела.

Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Сообщение Xaker_S » 11.04.2003 (Пт) 6:48

Одно нашел: чтобы форма не выгружалась-Visible-False

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 11.04.2003 (Пт) 6:54

Ты можешь обращаться к объектам другой формы просто указав сначала имя формы, например так:

Form2.TextBox1.Text = Val(Form2.TextBox1.Text) - 5

ВОТ.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 11.04.2003 (Пт) 8:26

me.hide - форма не выгружается, а просто прячется
unload me - форма выгружается

Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Сообщение Xaker_S » 11.04.2003 (Пт) 10:25

Дело в том, что мне надо как-то связать переменные из 2-х форм.

Form1.TextBox1.Text = Val(Form2.TextBox1.Text) - 5
А здесь связываются только тексты.

Я пробовал объявить глобальную переменную
Public X As Integer
вроде так, но не идет.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2003 (Пт) 10:29

Ты бы лучше прояснил, что ты хочешь сказать словами "связать переменные из двух форм" ;)

Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Сообщение Xaker_S » 11.04.2003 (Пт) 13:38

Как сделать чтобы переменные из двух форм взаимодействовали друг с другом?
одна объявляется в одной форме , другая - в другой.
Так они не взаимодействуют.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2003 (Пт) 14:06

Присвоить одной значение второй ;)



А так у переменных нету событий - так что взаимодействие как таковое тебе придется делать руками.

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 11.04.2003 (Пт) 17:47

Xaker_S писал(а):Дело в том, что мне надо как-то связать переменные из 2-х форм.

Form1.TextBox1.Text = Val(Form2.TextBox1.Text) - 5
А здесь связываются только тексты.

Я пробовал объявить глобальную переменную
Public X As Integer
вроде так, но не идет.


связь двух переменных:

в форме1 например у тя переменная х1 а во второй форме - х2
объявляешь как

public x1 as integer 'в первой форме

sub command1_click()
form2.x2 = x1
end sub

public x2 as integer 'во второй форме

зы. надеюсь щначения переменным сам воткнёшь ;)

Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Сообщение Xaker_S » 12.04.2003 (Сб) 5:33

Ничего не выходит
Буду конкретнее:
Объявляю переменную в 1 форме
Dim x1 as integer
Private Sub Form_Load()
x1=10000
Text1.Text=x1

Во второй:
Dim x2 As integer

Private Sub Form_Load()
x2=100
Text1.Text=x2
End Sub

Private Sub Command1.Click()
x1=x1-x2
End Sub

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 12.04.2003 (Сб) 7:19

Добавь к своему проекту модуль, и все объявления глобальных процедур, функций, переменных там и держи, так вроде должно получиться.

На всякий случай:

В модуле: Public x1,x2 as Integer

Удачи!

Xaker_S
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 09.04.2003 (Ср) 3:28
Откуда: Severomorsk

Сообщение Xaker_S » 12.04.2003 (Сб) 10:13

8) В модуле не получилось, но ты меня натолкнул на идею
Я создал MDI Форму, и туда занес переменную.
Все работает!!!
На самом деле кто-нидь знает зачем она нужна?

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 12.04.2003 (Сб) 23:51

Зачем MDI Форма нужна я не знаю! Но я обратил внимание что ты объявляешь переменную до сботия :

Dim x1 as integer
Private Sub Form_Load()

А ты папробуй так :

Private Sub Form_Load()
Dim x1 as integer
x1=10000
Text1.Text=x1
:!:
Max!

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 14.04.2003 (Пн) 18:24

Xaker_S писал(а):Ничего не выходит
Буду конкретнее:
Объявляю переменную в 1 форме
Dim x1 as integer
Private Sub Form_Load()
x1=10000
Text1.Text=x1

Во второй:
Dim x2 As integer

Private Sub Form_Load()
x2=100
Text1.Text=x2
End Sub

Private Sub Command1.Click()
x1=x1-x2
End Sub


!!!!!: не dim x1... а public x1 as ...
далее:

Private Sub Command1.Click()
form1.x1=form1.x1-x2
End Sub


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 85

    TopList