Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 0
Регистрация: 19.05.2018
Сообщений: 152
1

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

12.06.2021, 14:56. Показов 1501. Ответов 4
Метки нет (Все метки)

Доброго времени суток.
Попытался реализовать считывание переменных из полей ввода формы 2, чтобы использовать их в расчетах на форме 1.
Что я делаю не так?
Пробовал вариант, когда создаем extern double в глобальной области на форме 2 и использовать ее на форме 1. Не получается использовать. Подскажите как правильно?
Т.е. код формы 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
TForm1 *Form1;
//TForm3 *Form3;
extern double H, B, L, S;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
B = StrToFloat(LabeledEdit1->Text);
H = StrToFloat(LabeledEdit2->Text);
L = StrToFloat(LabeledEdit4->Text);
S = StrToFloat(LabeledEdit3->Text);
 
this->Close();
}
//---------------------------------------------------------------------------
Код формы 1, где я пытаюсь использовать значение переменной:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TForm2 *Form2;
TForm3 *Form3;
bool toogle = 0;
//int i = Form2->H;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Form3->ShowModal();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ToggleSwitch1Click(TObject *Sender)
{
 
 
if (toogle<1) {
    toogle = 1;
    } else toogle = 0;
 
if (toogle<1) {
    TrackBar1->Enabled=true;
    TrackBar2->Enabled=true;
    BitBtn1->Enabled=true;
    } else {
    TrackBar1->Enabled=false;
    TrackBar2->Enabled=false;
    BitBtn1->Enabled=false;
    LabeledEdit1->Text=FloatToStr(H);
 
    }
}
//---------------------------------------------------------------------------
Добавлено через 2 минуты
Также пытался через обращение к членам класса секции паблик, добавляя переменные double в соответствующие поля класса формы 2 и пытался обращаться к ним со стороны формы 1. Но я не знаю как это работает, когда форма закрыта методом
C++
1
this -> close()
по обработчику на форме. Хотелось бы чтобы он перед закрытием и осуществлял передачу переменных для удобного использования на форме 1.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2021, 14:56
Ответы с готовыми решениями:

Передача переменной из одной формы в другую
Есть сервер-распределитель, на нем хранятся данные о серверах вычислителях (порт и IP), с &quot;Клиент&quot;...

Передача переменной из одной формы в другую
Объясните пожалуйста: 1. Куда вставлять (1)? 2. Куда вставлять (2)? Покажите пожалуйста на...

Передача массивов из одной формы в другую
Собственно сама задача состоит в том, чтобы в одной форме рассчитать два массива значений, а затем...

Передача переменной из одной формы в другую
Передаю переменную из одной формы в другую через extern. Компилирует всё правильно, но при...

4
фрилансер
2529 / 1943 / 478
Регистрация: 11.10.2019
Сообщений: 5,672
12.06.2021, 15:03 2
Цитата Сообщение от Guitarist Посмотреть сообщение
extern double H, B, L, S;
а где же эти переменные объявлены? Без объявления не взлетит
0
3 / 3 / 0
Регистрация: 19.05.2018
Сообщений: 152
12.06.2021, 15:04  [ТС] 3
Делал таким образом - ругается на неопределенное поведение и передает 0 в поле с выводом на форме 1.
Т.е. я понимаю, что эту extern переменную нужно объявить в глобальной области формы 1 и формы 2. Но здесь почему-то не взлетает.
0
фрилансер
2529 / 1943 / 478
Регистрация: 11.10.2019
Сообщений: 5,672
12.06.2021, 15:05 4
в cpp первой формы:

C++
1
2
3
4
double H=0;
double B=0;
double L=0;
double S=0;
в cpp второй формы:
C++
1
2
3
4
extern double H;
extern double B;
extern double L;
extern double S;
0
3 / 3 / 0
Регистрация: 19.05.2018
Сообщений: 152
12.06.2021, 15:08  [ТС] 5
Тупанул. Там не нужно extern для формы 1, если они указаны таковыми для формы 2
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2021, 15:08

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Передача события из одной формы в другую
Каким образом можно передать событие из одной формы в другую (в Builder c++)

Передача значений переменных из одной формы в другую
Извините, но я недавно начал осваивать Builder 5. Неодходимо передать значения 4-х переменный...

Передача массивов и параметров с одной функции в другую
Здравствуйте. Я пишу программу, она состоит из множества функций. И у меня возникло море вопросов....

Передача данных из одной формы в другую
Всем привет! Как передавать значения, например QComboBox из формы А в форму B?

Передача значения из одной формы в другую
Нужно написать программу для тестирования, состоящую из нескольких вопросов. Для подведения...

Передача данных с одной формы на другую
Всем привет. На одной форме расположено поле ввода и кнопка, по нажатию которой осуществляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.