Связка двух окон в Visual Studio 2005 (С++)

Тема в разделе "MS Visual C++", создана пользователем TalgatG, 21 фев 2007.

Статус темы:
Закрыта.
  1. TalgatG

    TalgatG Гость

    Здраствуйте ребята! Я пишу на Visual Studio 2005 (C++). У меня такая проблема: Есть два окна: главное MainForm (Main.h) и дочернее ChildForm (Child.h). На главном (Main) расположен обект OLEDBСonnection. На дочернем (Child) DataSet.
    В заголовке главного окна пишу #include "Child.h" и содаю дочернее . Теперь для объекта DataSet расположеного на дочернем окне мне нужно указать connection, который драсположен на главном окне.
    Далее в заголовке дочернего окна пишу #include "Main.h", затем "DataSet->connection=MainForm->connection". Но это не срабатывает. Выдает ошибку: "undeclared MainForm". Получается что-то вроде циклической ссылки и compiler игнорирует один из заголовочных файлов (Main.h). Это работает в С++ Builder, но здесь нет. Буду признателен если найдете время и ответите. Спасибо заранее.
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Стандартная проблема и стандартное решение: #include "Main.h" пишешь в Child.cpp
     
  3. TalgatG

    TalgatG Гость

    European, спасибо за ответ! К сожалению нет. не получается. Выдает ошибку или "undeclared MainForm" или "undeclared ChildForm", в зависимомти как расположешь инклуды в обоих файлах. Проблема в том что для двух окон не получается создать ссылки друг на друга. Но мне кажется должен быть выход. спасибо еще раз.
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Код (Text):
    DataSet->connection=MainForm->connection
    Эта строка в каком файле?
     
  5. TalgatG

    TalgatG Гость

    это строка в Child.h. Я наверное не понятно объяснился. Если проще: мне нужен доступ к объектам ChildForm из mainForm и наоборот к объектам mainForm из ChildForm, одновременно.
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-TalgatG+21:02:2007, 12:08 -->
    <span class="vbquote">(TalgatG @ 21:02:2007, 12:08 )</span><!--QuoteEBegin-->Я наверное не понятно объяснился. Если проще: мне нужен доступ к объектам ChildForm из mainForm и наоборот к объектам mainForm из ChildForm, одновременно
    [snapback]56794" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Я тебя прекрасно понял. Только строку эту перенеси в *cpp файл.
     
  7. TalgatG

    TalgatG Гость

    я пробовал, к сожалению не получается. спасибо еще раз
     
  8. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Подробная инструкция:
    1 - в файле Child.h ОТКЛЮЧИТЬ Main.h
    2 - перед объявлением ChildForm написать class MainForm; (или как он там у тебя называется)
    3 - из Child.h выкинуть в Child.срр весь код, манипулирующий MainForm (оставить только объявление)
    4 - в файле Child.срр ПОДКЛЮЧИТЬ Main.h
    5 - в Main.h ПОДКЛЮЧИТЬ Child.h

    Все должно работать
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей