ГДЕ хранить глобальную переменную для всех представлений
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



ГДЕ хранить глобальную переменную для всех... Expand / Collapse
Автор
Сообщение
16.07.2001 13:29
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.07.2001 13:12
Сообщ.: 10, Visits: 111
я делаю MDI приложение с использованием БД

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

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

я пробовал в главном приложении и инициализировал её в
InitInstance -получается
НО может быть можно как-то лучше это делать и по другому
А КАК? помогите пожалуста
Сообщ. #716435
17.07.2001 15:33
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298, Visits: 12 501
Я бы порекомендовал следовать идеологии Document/View от Microsoft/MFC. То есть хранить ее в CMyAppDocument или как там оно называется (класс, производный от CDocument)...

С уважением, Владимир.
Сообщ. #716620
17.07.2001 16:36
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.07.2001 13:12
Сообщ.: 10, Visits: 111
Дело в том что я делаю приложение MDI

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

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

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

Кто может ответить на этот вопрос?
Сообщ. #716635
17.07.2001 16:49
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 19.07.2002 20:29
Сообщ.: 27, Visits: 298
A to, chto skazal boombastik - ochen' dazhe pravilno. Ne nado izobretat' velosiped.

KYG.
Сообщ. #716639
17.07.2001 16:49
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298, Visits: 12 501
На самом деле MDI - Multi-Document Interface. Это подразумевает, что в этом приложении существует возможность ОДНОВРЕМЕННОГО открытия множества документов. В вашем же случае, если к примеру за документ взять БД, получается упрощенная модель MDI, но это не мешает использовать все ту же модель от MFC - Document/View.
Пусть у вас будет один документ с настройками и объектом CDatabase (проще кстати будет скидывать эти настройки в файл...). Вам остается только связать все создаваемые представления (наследников CChildView) с активным документом...

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

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

Удачи, Владимир.
Сообщ. #716640
17.07.2001 17:52
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 15.03.2007 17:40
Сообщ.: 40, Visits: 396
И так работает тоже:
В StdAfx.h определяешь
extern CString dbname;

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

И дальше эта переменная становится глобальной и появляется в папке Globals
С уважением, Виталий
Сообщ. #716659
18.07.2001 11:49
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.07.2001 13:12
Сообщ.: 10, Visits: 111
Я понял вас Владимир.

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

Если могут то как это делается?
-Как обычно присоеденяются шаблоны в InitInstance
или как-то особенно?
Сообщ. #716743
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 3:30