Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка E2235 Member function must be called ... 
:(
    Опции темы
Niakita
Дата 17.5.2012, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 22.12.2010

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



При компиляции проекта выскакивает ошибка [BCC32 Error] Unit1.cpp(58): E2235 Member function must be called or its address taken

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!Table1->Active)
  Table1->Active=true;
Table1->Append();
Table1->FieldByName("EmployeeKod")->AsString=Edit4->Text;
Table1->FieldByName("Name")->AsString=Edit1->Text;

Table1->FieldByName("OneDayRate")->AsFloat=StrToFloat(Edit2->Text);

Table1->FieldByName("Tax")->AsFloat=StrToFloat(Edit3->Text);

Table1->Post();
  Edit1->Clear; // ОШИБКА
   Edit2->Clear; // ОШИБКА
    Edit3->Clear; // ОШИБКА
     Edit4->Clear; // ОШИБКА
Edit4->SetFocus();  
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
 Form1->Close; // ОШИБКА
}
//---------------------------------------------------------------------------



Весь код:

Код

//---------------  Расчёт заработной платы Unit1.cpp ------------- //

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//#include "Unit1_WorkWithTTable.h"

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

#pragma package (smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;

//Функция расчёта заработной платы одного работника //

float Sal (float OneDayRate, float Tax, float AmountDays)
// OneDayRate -  ставка одного дня,
// Tax - процент налога,
// AmountDays - количество отработанных дней

{
return (OneDayRate * AmountDays * (1-Tax/100));
}

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

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

}


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

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
if (Key==VK_RETURN)
Edit2->SetFocus();
}
//--------------------------------------------------------------//

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!Table1->Active)
  Table1->Active=true;
Table1->Append();
Table1->FieldByName("EmployeeKod")->AsString=Edit4->Text;
Table1->FieldByName("Name")->AsString=Edit1->Text;

Table1->FieldByName("OneDayRate")->AsFloat=StrToFloat(Edit2->Text);

Table1->FieldByName("Tax")->AsFloat=StrToFloat(Edit3->Text);

Table1->Post();
  Edit1->Clear; // ОШИБКА
   Edit2->Clear; // ОШИБКА
    Edit3->Clear; // ОШИБКА
     Edit4->Clear; // ОШИБКА
Edit4->SetFocus();  
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if (Key==VK_RETURN)
Edit3->SetFocus(); 
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Edit3KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if(Key== VK_RETURN)
 Button1->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit4KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key== VK_RETURN)
Edit1->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit5KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key==VK_RETURN)
Edit6->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit6KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key == VK_RETURN)
Button2->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  /* Сначала свойство AutoCalcFields устанавливается в fals (отключает) событие
OnCalcFields (это будет иметь эффект, когда таблица неактивна, иначе событие 
OnCalcFields всё равно возникает. После нахождения требуемой записи свойство включает событие,
чтобы можно было обработать вычислимое поле */


if (!Table1->Active) 
 Table1->Active=true;
TLocateOptions Options;
/* TLocateOptions -  это псевдоним (typedef) специального класса-шаблона Set, у которого есть операция
 "<<" (включить в экземпляр Set:) (в данном случае экземпляром является Options). Поэтому ниже Options
 добавляются режимы loPartialKey  и loCaseInsensitive. Предварительно Options  очищается */
 
Options.Clear();
Options << loPartialKey << loCaseInsensitive;
/* поиск по частичному совпадению ключа, регистры символов не имеют значения.
Edit2; Edit4 - это соответственно поля поиска по конъюнкции со значениями этих полей */

if (!Table1->Locate("EmployeeKod", Edit5->Text,Options))
// здесь указывается имя значения поля //
ShowMessage("Не найдено поле с табельным номером" + Edit5->Text);
else
 {
  Table1->Edit();
  Table1->FieldByName("AmountDays")->AsFloat=StrToFloat(Edit6->Text);
  Table1->FieldByName("Salary")->AsFloat=Sal(Table1->FieldByName("OneDayRate")->AsFloat, 
  Table1->FieldByName("Tax")->AsFloat,
  StrToFloat(Edit6->Text));
  Table1->Post();
 }    
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Table1->Open();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
  Form1->Close; // ОШИБКА
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
/* Здесь не применяется метод EmptyTable(), т.к. он требует соблюдения
довольно жестких условий и поэтому не всегда проходит */
if(!Table1->Active)
Table1->Active=true;
while(!Table1->Eof)
  Table1->Delete();
Table1->Close();
}
//---------------------------------------------------------------------------






Списал с учебника.
*dfm файла не было - компоненты на форме расположил по картинке.

Вопрос:
- по какой причине возникает ошибка [BCC32 Error] Unit1.cpp(58): E2235 Member function must be called or its address taken?
- как её устранить?
PM MAIL   Вверх
borisbn
Дата 17.5.2012, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Цитата(Niakita @  17.5.2012,  17:31 Найти цитируемый пост)
Edit4->SetFocus(); 

вот здесь ты правильно вызываешь функцию SetFocus
Цитата(Niakita @  17.5.2012,  17:31 Найти цитируемый пост)
Edit4->Clear; // ОШИБКА

а здесь функцию Clear - нет.
Поищи внимательно разницу

Это сообщение отредактировал(а) borisbn - 17.5.2012, 17:46


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Niakita
Дата 17.5.2012, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 22.12.2010

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



Спасибо - нашёл

Это сообщение отредактировал(а) Niakita - 17.5.2012, 18:07
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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