|
1 / 1 / 0
Регистрация: 15.09.2018
Сообщений: 5
|
|||||||||||||||||||||
Как передать данные из функции в форму28.09.2018, 21:24. Показов 1640. Ответов 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 Передать форму как аргумент функции Как передать форму в качестве параметра функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
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 существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|