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


Автор: Destrifer 3.12.2007, 00:12
Код

#include <vcl.h>
#pragma hdrstop

#include "New.h"
void MyFunction(int qwe);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
void MyFunction(int qwe);
int a;
};
void TForm1::MyFunction(int qwe)
{
 switch(qwe)
 {
  case  1:       a = 123;
 }
 Edit1->Text = a;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
MyFunction(1);
}


пишет - "TForm1::MyFunction(int)' is not a member of 'TForm1" :(
Почему?

Автор: Fazil6 3.12.2007, 00:16
что это за бред?
Код

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
void MyFunction(int qwe);
int a;
};

Автор: Destrifer 3.12.2007, 00:35
Хороший вопрос)). А как это должно правильно выглядеть?

Автор: Fazil6 3.12.2007, 00:39
Цитата(Destrifer @  3.12.2007,  00:35 Найти цитируемый пост)
Хороший вопрос)). А как это должно правильно выглядеть?

ну это зависит от того что ЭТО такое?

Автор: Destrifer 3.12.2007, 00:48
Да это и не столь важно
В данном случае имеется одно поле ввода, и кнопка при нажатии на которую в него заносится значение "123".
Вопрос в том как это реализовать в виде функции.

Автор: orthrus 3.12.2007, 06:24
То, что ты написал в конструкторе, т.е. вот это:

Код

void MyFunction(int qwe);
int a;


Надо перенести в описание класса TForm1, чтобы обьявление было внутри класса а не так как ты это сделал.

Автор: Diamido 3.12.2007, 08:22
Код

#include <vcl.h>
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "New.h"
TForm1 *Form1;
//------------------ сначало объявлям функцию (если глобальную хочешь сделать то тут или в *.h  файле)
void MyFunction(int qwe);
int a; // глобальные переменные тоже тут
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  
};
//----------------- Потом описывает тело функции
void TForm1::MyFunction(int qwe)
{
 switch(qwe)
 {
  case  1:       a = 123;
 }
 Edit1->Text = a;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MyFunction(1);  // вызываем там где нужна обработка
}


Вот так ты наверное хотел.

Автор: Destrifer 3.12.2007, 12:05
Спасибо всем, однако, к сожалению, ошибка остается (18 строка) :((

Автор: Fazil6 3.12.2007, 12:26
Цитата(Destrifer @  3.12.2007,  12:05 Найти цитируемый пост)
Спасибо всем, однако, к сожалению, ошибка остается (18 строка) :((

почитали бы вы какой-нибудь учебник по синтаксису С++

Автор: Destrifer 3.12.2007, 19:00
Читаю конечно, но учебник односторонен, может кто подскажет по проблеме? smile 

Автор: zkv 3.12.2007, 19:22
Destrifer, учебник почитать тебе советуют не из-за того, что все тут вредные такие, 
просто не сможешь ты ничего сделать (эта проблема если решится, то тут же следующая появится) без знаний хотя бы основ языка.

здесь тебе перед использованием нужно объявить метод в классе:
Код

//предварительно в хедере TForm1
class TForm1 //...

  void MyFunction(int qwe);
};

//реализация (cpp-файл)
#include <vcl.h>
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "New.h"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  
};
//----------------- Потом описывает тело функции
void TForm1::MyFunction(int qwe)
{
 switch(qwe)
 {
  case  1:       a = 123;
 }
 Edit1->Text = a;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MyFunction(1);  // вызываем там где нужна обработка
}

Автор: Destrifer 3.12.2007, 19:33
Спасибо zkv, буду долбить учебник дальше ))

Автор: scija 9.12.2007, 18:34
Помогите написать программу построения у=arcsin x

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