|
1 / 1 / 0
Регистрация: 15.09.2018
Сообщений: 5
|
|||||||||||||||||||||
Как передать данные из функции в форму28.09.2018, 21:24. Показов 1597. Ответов 10
Метки нет (Все метки)
Прошу помочь!
Мне 55 лет и волей нашего правительства мне еще 10 лет работать, поэтому приходится изучать VS 2010 и C++! Ранее много писал на ANSI C для контроллеров, поэтому думал, что будет не сложно перейти, ан нет! Исходные данные: Проект Test. Основной файл: testmain.cpp Файл формы (форма одна): Form1.h Файл функций: functions.cpp Заголовочный функций: functions.h Заголовочный: "stdafx.h" ----------------------------------------------------------------------------------------------------------------- В "stdafx.h" записано: ---------------------------
----------------------------------------------------------------------------------------------------------------- В testmain.cpp записано: -----------------
----------------------------------------------------------------------------------------------------------------- В Form1.h записано: ------------------- Стандартно, что создает само приложение при выполнении помощника, и еще дополнено comboBox1 и textBox1. Никаких обработчиков событий нет, ничего! ----------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------- В functions.cpp записано: -------------------
----------------------------------------------------------------------------------------------------------------- В functions.h записано: ----------------
Что происходит: На этапе компиляции остановка с ошибкой: error C2065: comboBox1: необъявленный идентификатор (для файла functions.cpp) error C2065: textBox1: необъявленный идентификатор (для файла functions.cpp) Вопрос: Как сделать, чтобы это работало?
0
|
|||||||||||||||||||||
| 28.09.2018, 21:24 | |
|
Ответы с готовыми решениями:
10
Как передать переменную в другую форму? Как передать данные в форму?
|
|
391 / 64 / 11
Регистрация: 06.08.2018
Сообщений: 202
|
||||||
| 28.09.2018, 22:56 | ||||||
|
ой, я тут тоже без году неделя, ваши библиотеки мне не знакомы... Короче, скорее всего буду фигню пороть. Попрявят - глядишь тоже чему новому научусь...
у вас в functions.cpp
0
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 28.09.2018, 23:04 | ||
|
Попробуйте Form1->combox1... и так далее.
Ведь ваш calc1 вне классов... Или сделайте его членом. Все-таки плюсы имеют специфику... И самые простые его законы стоит изучить. Уверяю вас, это не сложно... Добавлено через 3 минуты ![]() Инициализация здеся, имхо, ни при чем. Энтот combox1 - член класса. И вне класса, увы, не виден!
0
|
||
|
391 / 64 / 11
Регистрация: 06.08.2018
Сообщений: 202
|
||
| 28.09.2018, 23:08 | ||
|
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 28.09.2018, 23:14 | ||
|
Не по теме: Хорошее слова! Подарите для коллекции?:) Это общий плюсовой закон. Простой. В методе класса все его члены видны. В других методах (функциях) надо специфицировть его принадлежность Form1->combobox1 Инкапсуляция, блин!
0
|
||
|
391 / 64 / 11
Регистрация: 06.08.2018
Сообщений: 202
|
|||
| 29.09.2018, 00:36 | |||
|
0
|
|||
|
1 / 1 / 0
Регистрация: 15.09.2018
Сообщений: 5
|
|
| 29.09.2018, 10:16 [ТС] | |
|
Байт, благодарю за ответ, но 55 - это уже почти приговор, что касается Form1->combobox1 ничего не дает, я это уже делал. Вопрос: как сделать мою функцию calc1 членом класса, ведь подобных функций много. Если не трудно, то прошу "разжевать" на моем примере с calc1, мне хотя-бы будет от чего отталкиваться в изучении. Вопрос то еще в том, что мое изучение никто не собирается терпеть, перестройка понимаете-ли(Горбачев)!
Добавлено через 1 минуту Крашеная, добрый день, инициируется comboBox1 в основной форме Form1.h
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||||||||
| 29.09.2018, 11:35 | ||||||||||||
0
|
||||||||||||
|
1 / 1 / 0
Регистрация: 15.09.2018
Сообщений: 5
|
||||||
| 29.09.2018, 21:58 [ТС] | ||||||
|
Байт, Добрый день! Очень благодарен за ответ.
Еще несколько вопросов, если возможно, то помогите. 1) В каком месте в Form1 вставить мою функцию, объявление функции такое: int calc(int a, int b); В самой функции логика, и по результатам читаем из comboBos или пишем в textBox, а также прочее, но это не важно. Вероятно в позицию: //TODO: добавьте код конструктора! В эту же позицию также добавляются остальные функции? Какой синтаксис записи, или как обычно при объявлении функции. Собственно сам файл формы Form1.h: Form1_h.doc 2) Какой синтаксис записи самой функции во внешнем файле functions.cpp? Необходимо ли в файл functions.cpp записать #include "Form1.h" ? Что еще дописать в подключаемых #include? ___________________________ Собственно сам файл формы functions.cpp (далее в моем примере функция описана без привязки к классу, как дописать класс, хотя Вы приводили пример, но если возможно еще раз с учетом моей конструкции):
3) Какой синтаксис вызова функции из другой функции, обе они расположены во внешнем файле functions.cpp и будут входит в общий класс? 4) Какой синтаксис вызова н-р этой функции из обработчика события button? Понятно, что для профессионала эти вопросы кажутся глупыми, но мне это крайне необходимо и непонятно. Изучением занимаюсь, но скорость познаний ниже того, что ждет руководство!
0
|
||||||
|
1 / 1 / 0
Регистрация: 15.09.2018
Сообщений: 5
|
|
| 01.10.2018, 12:41 [ТС] | |
|
неужели никто не знает, как это сделать?
0
|
|
|
1 / 1 / 1
Регистрация: 15.08.2010
Сообщений: 21
|
|
| 22.10.2018, 21:55 | |
|
Tamir64, по-хорошему вам начать нужно с более глубокого изучения языка С++ и хотя бы паттернов проектирования. По тому что я тут увидел - вы намешали в коде и обращение к форме и математические рассчеты. Это неправильно и так никто не делает. Математические рассчеты вообще ничего не должны знать про форму, в которой отображается результат. Тут можно использовать классический паттерн "Наблюдатель" даже в упрощенном виде. Если нужно сделать "абы как", то достаточно сделать глобальную переменную типа Form1 и сделать ее видимой везде где нужно, и до кучи все элементы интерфейса сделать public. Тогда заработает без дополнительных изучений С++ и смежных тем. Но это равноценно тому, что вместо предохранителя просто жучок поставить.
0
|
|
| 22.10.2018, 21:55 | |
|
Помогаю со студенческими работами здесь
11
Как передать данные из таблицы в форму, по клику? Как можно передать данные в форму, не используя ViewData и ViewBag Передать форму как аргумент функции Как передать форму в качестве параметра функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|