Здравствуйте, Andruxa-1, Вы писали:
A1>Заполнение списка происходит в СМойДокумент. Теперь понимаю, что СМойДокумент должен отвечать за работу с информацией в этих списках и нужно реализовать функции для работы с информацией в этих списках. Ну и естественно нужно передавать указатель на СМойДокумент.
Видимо, да
A1>А есть ли, помимо, документ-вид и набора диалоговых форм, еще какие-то реализации работы с БД.
Документ-вид и диалоговые формы — это общего назначения элементы. Для работы с БД есть CRecordSet и т.д.
Использую СДИ шаблон. Создал свой класс наследуемый от CObject. В хедере определяю
extern CTypedPtrList<CObList, CSurname*> m_Lists;
и хочу использовать переменную в классе документа — работа со списком
и в классе представление вывод, соответственно.
плюс есть диалоговые окна в которые передаю указатель на объект класса документа.
вопрос как мне использовать переменную не используя указатель на объект документа.
я включил в хедеры инклюд моего хедера
но получаю от линковщика
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Andruxa-1, Вы писали:
A1>>extern CTypedPtrList<CObList, CSurname*> m_Lists;
PD>Это декларация, а где дефиниция ?
Судя по всему ее нет. Я так понимаю, что в хедере
с объявлением класса я должен определить
CTypedPtrList<CObList, CSurname*> m_Lists;
,
а затем в каждом хедере, где хочу использовать свою переменную,
прописывать
Здравствуйте, Hawk, Вы писали:
H>Здравствуйте, Andruxa-1, Вы писали:
A1>>Я так понимаю, что в хедере с объявлением класса я должен определить...
H>Почему в хедере-то?
H>Всю жизнь глобальные переменные определялись в CPP.
Ок. Я определяю в foo.h свой класс
#pragma once
class CFoo : public CObject
{ //// };
CTypedPtrList<CObList, CFoo*> m_List;
Затем в appDoc.h и appView.h, пишу #include "foo.h", а затем в appDoc.cpp и appView.cpp
определяю extern CTypedPtrList<CObList, CFoo*> m_List;?
Получается я хочу использовать глобальный объект или лучше использовать локальный и передавать на него
указатель, как это делается в настоящих проектах?
Объясните эти моменты.
Здравствуйте, Andruxa-1, Вы писали:
A1>Получается я хочу использовать глобальный объект или лучше использовать локальный и передавать на него A1>указатель, как это делается в настоящих проектах?
Что это за список ? Каково его назначение ? В MFC используетяс врхитектура "документ-вид". Он логически часть документа ? Он должен сохраняться при сохранении документа ?
Если ответ — да, то надо просто его сделать членом класса CMyDocument. Доступ из класса CDocument будет простейшим, а если он нужен где-то еще (в диалогах, например), то добраться всегда можно через метод класса CMyDocument, который ты напишешь. Получить указатель на документ из любого места не проблема. (GetActiveDocument, например, если документ один)
Если ответ — нет, то надо понять, куда он относится. Например, он может относиться к классу приложения (например, список каких-то настроек или данные из реестра). Тогда его надо хранить в классе CMyApplication.
Если он вообще "рабочая лошадка" вывода в окно (скажем, какие-то параметры для рисования) — ему место в CMyView.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Что это за список ? Каково его назначение ? В MFC используетяс врхитектура "документ-вид". Он логически часть документа ? Он должен сохраняться при сохранении документа ?
Я получаю данные из Access — таблицы и хочу хранить информацию в таких списках. Использую документ-вид.
PD>Если ответ — да, то надо просто его сделать членом класса CMyDocument. Доступ из класса CDocument будет простейшим, а если он нужен где-то еще (в диалогах, например), то добраться всегда можно через метод класса CMyDocument, который ты напишешь. Получить указатель на документ из любого места не проблема. (GetActiveDocument, например, если документ один)
Заполнение списка происходит в СМойДокумент. Теперь понимаю, что СМойДокумент должен отвечать за работу с информацией в этих списках и нужно реализовать функции для работы с информацией в этих списках. Ну и естественно нужно передавать указатель на СМойДокумент.
А есть ли, помимо, документ-вид и набора диалоговых форм, еще какие-то реализации работы с БД.