С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542

Как обратиться к другой форме?

11.09.2012, 22:43. Показов 4927. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть формы, одна из них главная, когда к главной подключаю вторую(#include "UNIT2.cpp"), все компилируется, но как только пытаюсь изменить какой-либо компонент во второй форме, через Form2->label1->Caption="lalala"; выдает ошибку что адрес не верный, то есть при компиляции все норм, а при работе проги, когда нажимаю кнопку изменить данные в другой форме дает ошибку. А когда наоборот пытаюсь ко второй форме (#include "UNIT1.cpp") подключить главную, вообще билдер выдает ошибки и зависает пока не вырубишь его через процессы, ну ясно что не работает в общем(
Кто знает почему не работает подключение других форм, или как правильно к ним адрес писать?
И мне надо бы вообще главную подключать к другим, что бы при открытии например формы 2 сделать первую форму невидимой. И как можно определить что форма открыта или нет, то есть сделать например так: у меня должно открываться 2 видемые формы+1 главная сразу не видимая, что бы при ее закрытии не закрывались и другие формы. И эта главная форма должна определять открыты ли другие форма, если пользователь закрыл обе видимые формы, то завершаем программу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2012, 22:43
Ответы с готовыми решениями:

Как обратиться к переменной из другой формы?
Как обратиться к переменной из другой формы? Например, в Form1 есть переменная x, как ее использовать в Form2?

Одна кнопка по нажатию присваивало имя другой кнопке на другой форме
Есть две формы: MainForm и TestForm, нужно сделать так, чтобы при нажатии на кнопку на форме MainForm, "Captoin" этой копки...

Как написанную функцию на одной форме ипользовать в другой
Всем доброго времени суток. Имеется функция void Add(void). Прописал её прототип в formRegNewEvent.cpp, а так-же в formRegNewEvent.h,...

7
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
11.09.2012, 22:46
klynxe, в первой форме в срр (#include "Form2.h") во второй форме в cpp (#include "Form1.h")
0
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
11.09.2012, 23:17  [ТС]
Пишет [C++ Error] Unit1.cpp(10): E2209 Unable to open include file 'Form2.h'

Добавлено через 7 минут
А все, только не form2.h а Unit2.h

Добавлено через 2 минуты
Только теперь проблемка в том, что если я подключаю 1-ый ко второму, а 2-ой к первому, то компилятор зацикливается...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
11.09.2012, 23:45
Если в обоих h-файлах стоят "охранники" вида:
C++
1
2
3
4
5
6
#ifndef Unit1H // Unit2H
#define Unit1H // Unit2H
 
// ...
 
#endif
, то ничего не зацикливается.
0
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
12.09.2012, 00:30  [ТС]
#ifndef Unit1CPP //для Unit1.cpp
#define Unit1CPP
#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "dstring.h"
#include <string>
#include "Unit1.h"
#include "Unit2.cpp"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
..............


#ifndef Unit2CPP //для Unit2.cpp
#define Unit2CPP
#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "dstring.h"
#include <string>
#include "Unit2.h"
#include "Unit1.cpp"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
...........................


Главная форма 1 может изменять элементы формы 2, 2-ая форма не дает менять пишет Access violation at address 0000988B. Read of address 0000988B.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
12.09.2012, 01:01
Ты чего творишь? Я написал про HEADER-файлы, а не про CPP.

Кто include-ит CPP-файлы вообще? Они к проекту добавляются, а не включаются один в другой.
1
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542
12.09.2012, 17:15  [ТС]
Если инклюдю только h файлы без cpp, то вообще билдер выдает ошибку и зависает.
0
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
13.09.2012, 10:57
Вообще,там есть кнопочка,связать другие формый с этой (не помню,точно как называется) )
на каждой форме,нужно выполнить эти действия,для взаимосвязи
ну можно и не делать впринципе,если тебе не нужно будет стучаться с 9 формы на 2 например
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.09.2012, 10:57
Помогаю со студенческими работами здесь

Как создать на форме батн или другой обьект?
Хелло ворлд!!! Ребята как с кода создать обиект? т.е если нажато на Button1 то создать на пример едит или другой батн на форме...

Обратиться из одной формы к элементам другой
Можно ли по кнопке Button1, находящейся на форме 2, изменить свойство Caption метки Label1, расположенной на форме 1? Обе формы - члены...

TChart на другой форме
Как показывать TChart на другой форме. Что б не строить по новой а просто отобразить содержимое. Что б при двойном нажатии на TChart1...

Передача сообщения другой форме.
Как передать из одной формы другой сообщение, чтобы вторая например свернулась. Или появилась по определенным координатам!

Доступ к переменной на другой форме
Добрый день, проблема в следующем. Я создаю экземпляр класса на одной форме #pragma package(smart_init) #pragma resource...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
изучаю 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru