Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > не активен "run" (новичек в билдере)


Автор: молчаливый 1.6.2006, 19:57
в двух словах
содержимое cpp (функции):

Код

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}

float TForm1::func(float x1,float x2)
  {
   return 4*(x1-5)*(x1-5)+(x2-6)*(x2-6);
  }

void TForm1::rozenbrok()
{
//длинная функция
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  rozenbrok();
  //.............
}


больше функций нет

заголовочный файл:

Код

//...............................................
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TPanel *Panel1;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:
        float func(float x1,float x2);
        void rozenbrok();
        __fastcall TForm1(TComponent* Owner);
};
//................................................................


я что-то не дописал, или написал не так как надо?
(команда run не активна) 

Автор: Oberon83 2.6.2006, 08:52
Ну во-первых, что ты подразумеваешь под командой run?
Во-вторых, можно было бы проше функции описывать:
Код

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

func(float x1,float x2)
{
return 4*(x1-5)*(x1-5)+(x2-6)*(x2-6);
}

rozenbrok()
{
//длинная функция
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
rozenbrok();
//.............
}

//Заголовочный файл трогать не надо

class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TPanel *Panel1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public:
__fastcall TForm1(TComponent* Owner);
};


Вот тогда бы у тебя все нормально работало.

Что касается твоего случая, то тебе функции вызывать нужно так:
Код

Название_формы->rozenbrok();
Название_формы->твоя_функция();
 

Автор: chwind 2.6.2006, 13:19
Цитата(Oberon83 @  2.6.2006,  08:52 Найти цитируемый пост)
Что касается твоего случая, то тебе функции вызывать нужно так:
Выделить всёкод C++ Builder
    
Название_формы->rozenbrok();
Название_формы->твоя_функция();


зачем Название_формы? ведь приведенные функци  являются методами класса формы ровно так же как и Button1Click(TObject *Sender) которая их вызывает.
у тебя молчаливый, все верно написано, да и активность кнопки ран не зависит от ошибок в коде.
Попробуй просто создать новый проект File->New->Application и попробуй скомпилить и запустить пустую форму. 

Автор: Oberon83 2.6.2006, 16:06
chwind, ну тогда не газвание формы, а Название_класса, у меня тоже так же один раз подглючивало, когда описал Название_класса->функция(); - все работало без проблем 

Автор: молчаливый 2.6.2006, 18:53
спасибо всем, по первости вышла запарка - не было файла .bpr (не знаю как получилось), поэтому компилиться и не хотелось! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)