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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
romio
Сообщений: n/a
#1

Где хранить глобальную переменную для всех представлений? - C++

23.09.2007, 14:06. Просмотров 1326. Ответов 6
Метки нет (Все метки)

я делаю MDI приложение с использованием БД

мне нужно чтобы при запуске открывалась БД (CDatabase)
а потом все формы использовали бы эту БД, чтобы не соединяться кажный раз при открытии новой формы

Но вот вопрос где хранить эту переменную?

я пробовал в главном приложении и инициализировал её в
InitInstance -получается
НО может быть можно как-то лучше это делать и по другому
А КАК? помогите пожалуста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2007, 14:06     Где хранить глобальную переменную для всех представлений?
Посмотрите здесь:

Немогу объявить глобальную переменную C++
C++ Количество всех различных представлений числа
почему глобальную переменную не видно, хотя она объяылена? C++
C++ Как обьявить глобальную переменную в функции?
C++ Как и где описать глобальную переменную?
C++ Как объявить глобальную переменную в Dev-C++ 4.9.9.2?
C++ Как обьявить глобальную переменную
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.09.2007, 16:10     Где хранить глобальную переменную для всех представлений? #2
Я бы порекомендовал следовать идеологии Document/View от Microsoft/MFC. То есть хранить ее в CMyAppDocument или как там оно называется (класс, производный от CDocument)...

С уважением, Владимир.
romio
Сообщений: n/a
24.09.2007, 17:13     Где хранить глобальную переменную для всех представлений? #3
Дело в том что я делаю приложение MDI

и хочу, чтобы оно было доступно для всех представлений. Это возможно, если хранить его в объекте документе как вы говорите?

как я уже сказал я пробовал его хранить в объекте-приложении
(и вытаскиваю (МоёПриложение*)AfxGetApp()->МояПеременная) и это работает.

НО меня интересует может это можно сделать как-то правильнее и лучше??

Кто может ответить на этот вопрос?
KYG
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 19
24.09.2007, 17:26     Где хранить глобальную переменную для всех представлений? #4
A to, chto skazal boombastik - ochen' dazhe pravilno. Ne nado izobretat' velosiped.

KYG.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.09.2007, 17:26     Где хранить глобальную переменную для всех представлений? #5
На самом деле MDI - Multi-Document Interface. Это подразумевает, что в этом приложении существует возможность ОДНОВРЕМЕННОГО открытия множества документов. В вашем же случае, если к примеру за документ взять БД, получается упрощенная модель MDI, но это не мешает использовать все ту же модель от MFC - Document/View.
Пусть у вас будет один документ с настройками и объектом CDatabase (проще кстати будет скидывать эти настройки в файл...). Вам остается только связать все создаваемые представления (наследников CChildView) с активным документом...

По моему должно работать замечательно, это получается как бы множество взглядов на одну и ту же ... проблему

Хотя с другой стороны - Вы разработчик, Вам и флаг в руки - начальству ведь все равно, что внутри лишь бы работало...

Удачи, Владимир.
Chuck
Сообщений: n/a
24.09.2007, 18:29     Где хранить глобальную переменную для всех представлений? #6
И так работает тоже:
В StdAfx.h определяешь
extern CString dbname;

А в классе CXXXApp:
CString dbname;

И дальше эта переменная становится глобальной и появляется в папке Globals
С уважением, Виталий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений?
Еще ссылки по теме:

Как глобальную переменную засунуть в структуру? C++
Можете подсказать,как правильно описать глобальную переменную C++
Как создать глобальную переменную? C++
Как сделать одну глобальную переменную C++
C++ Как правильно создать глобальную переменную?

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

Или воспользуйтесь поиском по форуму:
romio
Сообщений: n/a
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений? #7
Я понял вас Владимир.

Но тогда другой вопрос:
В MDI приложении две разные формы(представления) могут одно временно работать с одним документом?

Если могут то как это делается?
-Как обычно присоеденяются шаблоны в InitInstance
или как-то особенно?
Yandex
Объявления
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений?
Ответ Создать тему
Опции темы

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