Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связи между файлами проекта, в одном класс,его функции в другом 
V
    Опции темы
ano360
  Дата 6.11.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



есть файлы MForm.cpp и MForm.h. В MForm.h объявлен класс формы, в сзз соответственно его функции. Пытаюсь некоторые его функции вынести в файл MMenuFunc.сзз, И добавляю его #include "MMenuFunc.cpp" в  MForm.cpp, не работает, ришет, что класс TPointsForm не определён в файле MMenuFunc.cpp, добавляю его в MForm.h-таже история. Пробовал прописырать в MMenuFunc.cpp заголовок объекта:

class TPointsForm : public TForm;
Или
class TPointsForm;

Тоже ругается.

Так как всётаки это реализовать. Сливать все функции в  MForm.cpp, не выход.


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.11.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(ano360 @  6.11.2006,  10:06 Найти цитируемый пост)
MMenuFunc.cpp

сделай такой же файл но хедеровский(*.h) 
опиши в нем все ф_ции и прикрепи к кому нужно через инклюд
также подключи к проекту файл MMenuFunc.cpp


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 6.11.2006, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



а MMenuFunc.cpp оставить пустым?


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.11.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



нет в нем так все и остается, а в хедере только описываются ф_ции и переменые(если надо)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 6.11.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



тогда я чёто не понял. Функция - член класса, описываемого далеко отсюда в MForm.h.
как я её опишу в MMenuFunc.h

Это сообщение отредактировал(а) ano360 - 6.11.2006, 11:29


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.11.2006, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



как ты добавил?
и покажи оба файла 
Цитата(ano360 @  6.11.2006,  10:22 Найти цитируемый пост)
MMenuFunc





--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 6.11.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



.cpp
Код


//---------------------------------------------------------------------------


#pragma hdrstop
#include "MMenu.h"
void __fastcall TPointsForm::ScrolsClick(TObject *Sender)
{
this->Scrols->Checked=true;
}
//---------------------------------------------------------------------------

#pragma package(smart_init)



.h
Код

//---------------------------------------------------------------------------

#ifndef MMenuH
#define MMenuH

//---------------------------------------------------------------------------
#endif



ПРобовал 
void __fastcall TPointsForm::ScrolsClick(TObject *Sender)
{
this->Scrols->Checked=true;
}
писать в .h -безрезультатно

Это сообщение отредактировал(а) ano360 - 6.11.2006, 11:30


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.11.2006, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



не корректно так делать имхо 
Цитата(ano360 @  6.11.2006,  10:29 Найти цитируемый пост)
TPointsForm:

этот класс у тя определен в другом месте а его ф_ции ты пишешь здесь не хорошо
зачем такие сложности?




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 6.11.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



Потомучто их будет ОЧЕНЬ много, а эти буквально 1-2 строчки, не хочу захламлять MForm.cpp, Хочу объеденить их по тематике в одном файле.
Чтоб когда Крупные, массивные писать буду, глаза не мозолили и не путались под руками.

Там можно это как-нибудь реализовать? 


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 6.11.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



что пишет при 
Цитата(ano360 @  6.11.2006,  10:29 Найти цитируемый пост)
//---------------------------------------------------------------------------
#pragma hdrstop
#include "MMenu.h"
void __fastcall TPointsForm::ScrolsClick(TObject *Sender)
{
this->Scrols->Checked=true;
}
//---------------------------------------------------------------------------
#pragma package(smart_init)

и как подключаешь 
Цитата(ano360 @  6.11.2006,  10:06 Найти цитируемый пост)
MMenuFunc.cpp

к проекту?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 7.11.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



Создал всё заного в новом проекте:

Файл Unit1.cpp:
/
Код

/---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.cpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


Файл Unit1.h
Код


//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

unit2.cpp
Код

//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit2.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

#pragma package(smart_init)

unit2.h
Код


//---------------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#endif


Код неправильный, но очень хочется узнать как его исправить

Это сообщение отредактировал(а) ano360 - 7.11.2006, 10:06


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 7.11.2006, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(ano360 @  7.11.2006,  09:04 Найти цитируемый пост)
#include "Unit2.cpp"

не так подключаются файлы cpp а через средства билдера!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 7.11.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



В смысле "Add to project"? "Add to project" cделано.
Или как ещё подключить надо?

Кслатии чем отличается #include < > от #include " "?



--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 7.11.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(ano360 @  7.11.2006,  09:19 Найти цитируемый пост)
В смысле "Add to project"? 

да

Цитата(ano360 @  7.11.2006,  09:19 Найти цитируемый пост)
#include < > от #include " "?

<> это в включения из папки инклюд
"" это из папки проекта


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ano360
Дата 7.11.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 22.5.2006
Где: Москва

Репутация: нет
Всего: нет



А почему тогда не работает? в Add to project unit2.cpp есть


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.4089 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.