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

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

18.07.2009, 00:20. Показов 8244. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru