Форум — Ответы ( К темам )
? | Dimasn: видимость классов??? (15-02-2003 15:19:10) |
Создал класс в главной форме, в ней же и использую. Но как сделать видимым этот класс в дочерней форме. Может это как-то надо создавать в заголовке. Пожалуйста помогите ссылкой или текстом чего-то подобного. | |
Павел (16-02-2003 13:12:37) | |
Смотря где вы этот класс создали и что хотите делать, можно например сделать так: Этот класс AAA объявляете в Unit1.h главной формы Form1 class AAA{ public: int day; }; //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations AAA a; // создаем переменную a этого класса AAA // ... В дочерней форме Form2 включаете #include <Unit1.h> и используете co ссылкой на принадлежность класса главной форме Form1 void __fastcall TForm2::Button1Click(TObject *Sender) { ShowMessage(Form1->a.day); } Можно и по-другому | |
Petro (17-02-2003 17:33:46) | |
Класс будет виден там, где ты пропишешь соответствующий инклюд.
| |
Георгий (17-02-2003 19:38:46) | |
Файл заголовков обычно используют для хранения описания (прототипа) обьектов, к которым предполагается обращения из других модулей. Предлагаю тебе описать класс (перенести описание) в файл заголовков (например в файл заголовков главной формы), после этого к тому модулю, где нужно создать экземпляр класса и работать с ним, подключить этот файл заголовков (написать #include "Unit1.h" или через меню — File->Include Unit Hdr...). А вообще говоря хорошим стилем считается размещение ВСЕХ обьектов в отдельных модулях и связь модулей только через файлы заголовков. | |
DimaSN (21-02-2003 20:48:21) | |
Наконец-то нашлось время еще раз все проверить, но не получается, снова ошибки. Мой клас описан в Н-файле, но класс не просто набор переменных есть еще и его свойства: функции и процедуры. Так вот описал его в загаловке, создал переменную этого типа. А функции пытаюсь описать в самой программе, но что-то не так. Есть у меня образец чата, написанный с помощью класса, но там все просто, все в одной форме???А у меня сложнее. Это в заголовке //Класс — фигура class TFigure { //Структура public: int Stratum; double Box[4]; short int TypeFigure; int NumPoints; //Свойства void allocate(int _NumPoints); void free(); void WriteToBuffer(TMemoryStream *Buffer); void ReadFromBuffer(TMemoryStream *Buffer); //Определяем фигуру }; TFigure Figure; а это в форме //--------------- //Свойства фигуры //---выделение памяти--- void TFigure::allocate(int _NumPoints) { Points=new TDPoint[_NumPoints]; } Но что-то мне это не нравится, а как правильно не знаю. | |
Георгий (22-02-2003 12:01:48) | |
Не знаю, что у тебя не получается — кусок большой программы: в заголовке: class Device { protected: ... public: Device(void); ~Device(void); ... }; в cpp: Device ::Device(void) { ... }; ... ... ... Device ::~Device(void) { ... }; другие модули видят этот обьект только через файл заголовков — всё работает скажи поподробнее, что за ошибки |