powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача переменной с cpp-файла в главную форму и наоборот
9 сообщений из 9, страница 1 из 1
Передача переменной с cpp-файла в главную форму и наоборот
    #39495749
otars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Ситуация такая
Есть форма с компонентами,есть h–файл,есть .cpp - файл.

В .cpp - файле у меня выполняются куча функций НО возник такой вопрос

у меня есть динамический массив,я работаю с ним в .cpp файле но мне нужно его содержимое вывести на график(компонент tChart),который в свою очередь находится на главной форме.

Вопросы:

1) Как можно передать динамический двумерный массив(со значениями) из .cpp файла в файл где форма?

2) Или существуют возможность как-то передать из Form-ы компонент формы (tChart и другие) в .cpp файл и работать там напрямую?

Код пока не выкладываю,возможно смогу понять теоретически.
При случае могу потом показать проблемный блок кода.
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495757
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otarsДобрый день!

Ситуация такая
Есть форма с компонентами,есть h–файл,есть .cpp - файл.

В .cpp - файле у меня выполняются куча функций НО возник такой вопрос

у меня есть динамический массив,я работаю с ним в .cpp файле но мне нужно его содержимое вывести на график(компонент tChart),который в свою очередь находится на главной форме.

Вопросы:

1) Как можно передать динамический двумерный массив(со значениями) из .cpp файла в файл где форма?

2) Или существуют возможность как-то передать из Form-ы компонент формы (tChart и другие) в .cpp файл и работать там напрямую?

Код пока не выкладываю,возможно смогу понять теоретически.
При случае могу потом показать проблемный блок кода.
Что-то, воля ваше, странное вы спрашиваете... Как это передать из cpp в файл где форма???
Может быть из класса/процедуры/метода в форму?
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495761
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otarsВопросы:

1) Как можно передать динамический двумерный массив(со значениями) из .cpp файла в файл где форма?

2) Или существуют возможность как-то передать из Form-ы компонент формы (tChart и другие) в .cpp файл и работать там напрямую?



Вообще варианта 2 - передать ссылку на массив или сам массив.
Если передаете массив, то по сути создается копия, изменения которой никак не повлияют на исходный массив.
Но это и так понятно.
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495762
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otars, сначала тебе надо изучить матчасть - для чего служат h-файлы и cpp-файлы, а также что такое ссылки на экземпляры объектов (форм UI и их компонентов), что область видимости, инкапсуляция. Приходи снова, когда изучишь, но останутся вопросы.
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495767
otars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2008,
Лучше покажу с кодом.

есть methods.cpp,в нём содержатся методы для работы с динамическим двумерным массивом и объявление самого массива

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#include "methods.h"
#include <iostream>
#include <cmath>
#include <ostream>
#include <fstream>
#include <iomanip>

using namespace std;

double** wht;

void created(int Nt, int Nx) { 	//создание массива}

inline double fn(int T, double x) { //код}

inline double u0(int T, double x) { //код}

inline double u1(int T, double a, int xmin, double t) { //код }

inline double u2(int T, double a, int xmax, double t) {	//код }

void calculatedifnet(int xmin, double hx, double ht, double a, int Nx, int Nt, int T) { //код }

void writeinto(int Nx, int Nt)//Запись в файл {	//код }



После выполнения всех методов я хочу вывести содержимое массива double** wht на график(для этого я уже работаю с формой).
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495796
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otarsПосле выполнения всех методов я хочу вывести содержимое массива double** wht на график(для этого я уже работаю с формой).Методы работы с TChart с подробными описаниями и примерами можно найти в интернетах
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495800
otars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю немного кода для полноты картины и вопроса

Данный метод рисует несколько линий,координаты берёт из динамического массива
Если я сам массив просто добавлю в самом начале и объявлю как глобальная public переменная, то конечно же выскочит исключение - Ссылка не указывает на экземпляр.
Это понятно так как значения массива не передались на форму,и в итоге я работаю с пустым массивом.

Код: plaintext
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.
public:
double** wht;

public:void drawdifnet( int Nt)
	{
		chart2->Series["1"]->BorderWidth = 3;
		chart2->Series["2"]->BorderWidth = 3;
		chart2->Series["3"]->BorderWidth = 3;
		chart2->Series["4"]->BorderWidth = 3;
		chart2->Series["5"]->BorderWidth = 3;
		chart2->Series["6"]->BorderWidth = 3;
		chart2->Series["7"]->BorderWidth = 3;
		chart2->Series["8"]->BorderWidth = 3;
		chart2->Series["9"]->BorderWidth = 3;
		chart2->Series["10"]->BorderWidth = 3;
		chart2->Series["11"]->BorderWidth = 3;
		chart2->Series["12"]->BorderWidth = 3;
		for (int j = 1; j < Nt - 1; j++)
		{
			for (int i = 1; i < Nt - 1; i++)//Было Nx
			{
				chart2->Series["" + (j + 1).ToString()]->Points->AddXY(i, wht[j][i]); //- вот здесь и выскочит Исключение
			}
		}
	}
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495809
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otarsЕсли я сам массив просто добавлю в самом начале и объявлю как глобальная public переменная, то конечно же выскочит исключение
если у тебя 2 cpp файла, то:
во-первых, если переменная объявлена в одном cpp-файле:
Код: plaintext
1.
double** wtf = nullptr;


то в его хедере надо написать:
Код: plaintext
1.
extern double** wtf;


потом этот хедер просто включать через #include в другие cpp-файлы, где это требуется.
иначе у тебя просто 2 разных массива с одним названием

во-вторых, правильнее было бы передавать массив в функцию:
Код: plaintext
1.
public:void drawdifnet(const double**& wtf, int Nt)


а не использовать глобальную переменную внутри функции
...
Рейтинг: 0 / 0
Передача переменной с cpp-файла в главную форму и наоборот
    #39495841
otars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMb,большое спасибо вам.
Подправил хедер и .cpp файл по вашей подсказке.

Только с этим не работало
Код: plaintext
1.
public:void drawdifnet(const double**& wht, int Nt)

, работает с этим
Код: plaintext
1.
public:void drawdifnet(double** wht, int Nt)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача переменной с cpp-файла в главную форму и наоборот
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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