Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/39: Рейтинг темы: голосов - 39, средняя оценка - 4.72
 Аватар для dimacyxarev
0 / 0 / 0
Регистрация: 18.07.2009
Сообщений: 39

Передать данные из одного модуля в другой!!!

18.07.2009, 00:20. Показов 8179. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как передать данные из одного модуля в другой???
например есть модуль unit1.cpp, нужно передать значение переменной из edit в модуль unit2.cpp.....
Помогите плиз...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2009, 00:20
Ответы с готовыми решениями:

Как передать содержимое контейнера из одного модуля в другой?
Есть 2 модуля. Каждый модуль содержит файлы: *.h, *.cpp, *.pro. В файле *.h первого модуля описан QStringList список, в *.cpp этого же...

Передать данные одного обьекта класса в другой обьект на другой форме
Здравствуйте прочитал вот это https://www.cyberforum.ru/windows-forms/thread110436.html но так и не понял как передать данные одного...

Передать данные из одного массива в другой
Есть массив со сплитом вот такого вида: string split1 = { ".", Environment.NewLine };//и так далее string str_Slovo =...

15
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
18.07.2009, 00:37
в модуле unit 2 пишешь include unit1.cpp
edit у тебя на форме скорее всего гдето так TForm *Form1, если так пишешь
Form1->edit>text;
1
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
18.07.2009, 02:08
MrAndrey_ka,
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
в модуле unit 2 пишешь include unit1.cpp
наверное ни "*.cpp", а "*.h"
C++
1
#include "Unit1.h"
Добавлено через 29 минут 3 секунды
Цитата Сообщение от mirso Посмотреть сообщение
наверное ни "*.cpp", а "*.h"
Не! Точно "*.h".
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
//----Unit1.cpp--------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Edit1->Text = "Второй! Второй! Ответь Первому!!!";
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
    Form2->Left = Left +  50;
    Form2->Top  = Top  + 200;
    Form2->Show();
    //-------------------------------
    Form2->Edit1->Text = Edit1->Text;
    //-------------------------------
    
}
//---------------------------------------------------------------------------
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
//------Unit2.cpp------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm2::Edit1Change(TObject *Sender)
{
    if(Edit1->Text == Form1->Edit1->Text)
    {
        //=============================
        Application->ProcessMessages();
        Sleep(2000);
        //----------
 
        //-----------------------------------------------
        Edit1->Text = "Первый! Первый! Второй на связи!";
        Form1->Edit2->Text = Edit1->Text;
        //===============================
     }
 
     Application->ProcessMessages();
     Sleep(2000);
 
//------------
Form1->Show();
}
1
 Аватар для dimacyxarev
0 / 0 / 0
Регистрация: 18.07.2009
Сообщений: 39
18.07.2009, 07:32  [ТС]
Эт я понимаю...Мне надо переменную передать....Допустим из edit1 я сохранил в переменную в одном модуле...сделал математические операции...
А как теперь передать эту переменную....в другой модуль....
extern?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.07.2009, 10:10
dimacyxarev, если переменная глобальной видимости - да. А вот если локального, то ты и не передашь, Самый простой вариант, это сделать перменную членом класса TForm, и из Form1 например ссылатся на нее
C++
1
Form2->Somevar = /*присваеваешь че надо*;/
1
 Аватар для dimacyxarev
0 / 0 / 0
Регистрация: 18.07.2009
Сообщений: 39
18.07.2009, 11:15  [ТС]
чет не понял...можно по подробнее..)
0
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
18.07.2009, 17:02
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Самый простой вариант, это сделать перменную членом класса
Это не самый простой вариант: придётся писать инклуд, чтобы увидело класс.
Проще вариант: сделать переменную глобальной, а в другом модуле (например, unit2.cpp) написать: extern Variablle_type Variable_name;
Повторить объявление переменной с ключевым словом extern.
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.07.2009, 17:42
Airhand, и как твой модуль увидит другой без include'а ? он в любом случае понадобится. А так не будет необходимости писать extern. Ди и при возможности, рекомендуется избегать глобальных перменных.
0
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
18.07.2009, 17:55
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Airhand, и как твой модуль увидит другой без include'а ? он в любом случае понадобится. А так не будет необходимости писать extern. Ди и при возможности, рекомендуется избегать глобальных перменных.
Не нужен инклуд, т.к. они уже в проекте. Extern - значит, что переменная определена где-то ещё. Никаких инклудов не нужно.
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.07.2009, 18:05
значит сливание происходит на этапе линковки. но использовать глобальные перменные там, где без них можно обойтись - не есть тру. А #include <Unit2.h> понадобится в любом случае, для нормального взаимодействия с другим модулем. на одних extern'ах взаимодействия не построишь.
0
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
18.07.2009, 18:15
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
значит сливание происходит на этапе линковки. но использовать глобальные перменные там, где без них можно обойтись - не есть тру. А #include <Unit2.h> понадобится в любом случае, для нормального взаимодействия с другим модулем. на одних extern'ах взаимодействия не построишь.
Я же сказал, что не нужен инклуд вообще. Кроме того, инклуд хуже, т.к. он включает всё содержимое файла туда, где написан.
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.07.2009, 19:09
Airhand, как вы будет работать со второй формой без добавления заголовочного файла с описанием класса второй формы? ( я конечно в builder'е не ас... но все же интересно)
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
18.07.2009, 19:39
dimacyxarev,
Цитата Сообщение от dimacyxarev Посмотреть сообщение
extern?
А ты про это раньше ничего ни гаварил!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
extern int f1;//отут экстерним
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Caption = f1;//отут выводим
}
//---------------------------------------------------------------------------
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
int f1 = 5;//отут присвояем
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
1
 Аватар для dimacyxarev
0 / 0 / 0
Регистрация: 18.07.2009
Сообщений: 39
18.07.2009, 23:46  [ТС]
Все ... разобрался...вСем Спасибо!!!!))
0
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
19.07.2009, 16:23
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Airhand, как вы будет работать со второй формой без добавления заголовочного файла с описанием класса второй формы? ( я конечно в builder'е не ас... но все же интересно)
А зачем работать со второй формой, ведь он спрашивал как передать данные во второй модуль ? Да ты не ас и в с++, иначе бы знал, что инклуд - это команда препроцессора, которая добавляет в глобальную область видимости все имена из включаемого файла. Таким образом, она ещё хуже чем одна глобальная переменная.
1
 Аватар для Jnis
13 / 13 / 2
Регистрация: 06.01.2009
Сообщений: 70
19.07.2009, 23:38
эта тема когда-то давно поднималась: https://www.cyberforum.ru/wind... 675-2.html на 2 странице мой ответ поищи, там постарался коротко и ясно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2009, 23:38
Помогаю со студенческими работами здесь

Передать данные из одного php в другой
Доброго всем дня ,подскажите идею как решить вопрос есть 2 страницы на первой форма вывода из БД записей и форма отправке сообщения...

Передать данные с одного сервера на другой
Нужно передать переменную с одного сервера на другой, как можно это сделать ? $a = 30; Два сервера они мои , мне нужно передать число...

Передать данные из одного скрипта в другой
Добрый день, у меня есть 2 файла Index.php(в нем находится форма)и reg.php (Обработчик формы). Я реализую регистрацию во всплывающем...

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

Как передать данные с одного сервера на другой?
Имеется сервер Oracle, на нем представление, имеется хостинг MySQL. Как передать данные из Oracle на хостинг? В какую сторону рыть?


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru