Форум программистов, компьютерный форум CyberForum.ru

взаимоподключение - C++

Восстановить пароль Регистрация
 
NOU
1 / 1 / 0
Регистрация: 03.12.2009
Сообщений: 49
07.01.2010, 20:58     взаимоподключение #1
Здравствуйте! Программируя столкнулся с такой проблемой:
есть форм1 и форм2

1. В форм1 пишу #include "форм2.аш"
Все ОК!
2. В форм2 пишу #include "форм1.аш"

Вот тута проблемы и покатились!

З.Ы.
1.в форм1 создаю и открываю модальное форм2(frm2->ShowDialog()), все члены доступны.
2.пишет, что ShowDialog() не является членом форм2, да и вообще я такого (форм2) незнаю - сказал компилятор 0_o
У меня глаза уже на лоб лезут! Помогите!
Может, что не так делаю?
Спасибо!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
07.01.2010, 21:03     взаимоподключение #2
NOU,

Может, что не так делаю?

не делай перекрёстного подключения - всегда можно обойтись без него.
NOU
1 / 1 / 0
Регистрация: 03.12.2009
Сообщений: 49
07.01.2010, 21:15  [ТС]     взаимоподключение #3
А как? мне нужно из форм1 вызвать форм2, поднлать что-то, затем при закрытии форм2, изменить , допустим, текст текстбокса форм1!!!
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
07.01.2010, 21:24     взаимоподключение #4
если ы передаёшт форму как указатель, то в херере достаточно предварительной декларации класса:

C++
1
2
3
4
5
6
7
class Form1;
 
class Form2 
{
public:
    void Something(Form1* p);
};
подключать заголовочный фал с form1 не обязательно
NOU
1 / 1 / 0
Регистрация: 03.12.2009
Сообщений: 49
07.01.2010, 21:31  [ТС]     взаимоподключение #5
Ладно, а тогда как получить доступ к членам? если я подключаю, то все ок!
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
07.01.2010, 21:35     взаимоподключение #6
Ладно, а тогда как получить доступ к членам?

в cpp-файле. там и подключай.
NOU
1 / 1 / 0
Регистрация: 03.12.2009
Сообщений: 49
07.01.2010, 21:37  [ТС]     взаимоподключение #7
? Здесь по подробней можна? т.к. я новичок=)
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
07.01.2010, 21:43     взаимоподключение #8
NOU,

Здесь по подробней можна?

forward declaration
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
07.01.2010, 21:53     взаимоподключение #9
это все от плохого дизайна. надо разделать логику работы программы и интерфейс. то есть есть собственно набор даных, обработка которых ведется, компонент, который работает независимо от того, кто к нему обращается и сообщает о изменении себя по средством событий

тогда у нас есть 3 файла - logic.h, form1.h, form2.h

form1 & form2 используют logic, а logic не использует ни одну из форм - он сам по себе
NOU
1 / 1 / 0
Регистрация: 03.12.2009
Сообщений: 49
07.01.2010, 22:01  [ТС]     взаимоподключение #10
так получается logic может представлят просто файл? даже допустим текстовый. Но ведь я пытаюсь избежать создание доп. файлов и классов. Реально ли это?
Да и все равно не получается получить доступ к членам посредством форварда.(сильно прошу не бить!)
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
07.01.2010, 22:56     взаимоподключение #11
ну logic как раз содержит основной код программы. а формы только содержат интерфейс. положим, мы во 2 форме поменяли что-то в logice. он сгенерирует событие (ну, как в билдере есть события OnClick, которое генерится кнопкой при щелчке по ней), которое может ловить первая форма, или какая-нибудь 3я, или вообще никто ловить - logic-у все равно что там дальше с событием произойдет. а напрямую форму не взаимодействуют - только через logic.
Yandex
Объявления
07.01.2010, 22:56     взаимоподключение
Ответ Создать тему
Опции темы

Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru