Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.02.2011, 02:36   #1
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
Злость Помогаем новичку.

Занялся самоизучением. Поставил с самого начала легкую задачку, сделать конвертор.


Написал все программу, но выдает такие ошибки.


Вот сам код программы:

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

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

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char
&Key)
  {                                                                 ---- Здесь первую ошибку выдает
    if ((Key >= '0') && (Key <= '9'))
    return

    if (Key == DecimalSeparator)
    {
          if ((Edit1->Text).Pos(DecimalSeparator) !=0)
             Key = 0;
             return;
    }

    if (Key == VK_BACK)
       return;

    if (Key == VK_RETUEN)
        {
        Edit2->SetFocus();
        return;
        }

    Key = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{                                                                        ---------- Вторая
       if ((Key >= '0') && (Key <= '9'))
       return;

       if (Key == DecimalSeparator)
       {
         if ((Edit2->Text).Pos(DecimalSeparator) !=0)
         Key = 0;
         return;
       }

       if (Key == VK_BACK)
       return;

       if (Key == VK_RETURN)
       {
           Button1->SetFocus();
           return;
       };

       Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
       float usd;
       float k;
       float grn

       if (((Edit1->Text).Length() == 0))                             --------- Здесь третья
        {
           MessageDlg ("Надо ввести цену и курс",
              mtInformation, TMsgDlgButtons() << mbOK, |0);
            if ((Edit1->Text).Length() == 0)
              Edit1->SetFocus();
            else
              Edit2->SetFocus();
            return;
        };

        usd = StrToFloat (Edit1->Text);
        k = StrToFloat (Edit2->Text);

        grn = usd * k;

        Label4-Caption = FloatToStrF (usd, ffGeneral,7,2) +            --------Здесь четвертая
                   "$ = "+FloatToStrF(grn,ffGeneral,7,2) + " грн. " ;

}                                                               -------- И Пятая
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Form1->Close();
}
//---------------------------------------------------------------------------
помогите чайнику.

Последний раз редактировалось Stilet; 12.02.2011 в 11:26.
Fier вне форума
Старый 12.02.2011, 04:33   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы обработчики событий создавали от IDE или сами от балды написали?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 12.02.2011, 09:23   #3
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

1)Создавайте обработчики событий от IDE
2)
Код:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char
&Key)
{ ---- Здесь первую ошибку выдает
if ((Key >= '0') && (Key <= '9'))
return;
3)
Код:
float grn;

if (((Edit1->Text).Length() == 0))
4)Пропущен параметр перед | или написана лишняя |
Код:
MessageDlg ("Надо ввести цену и курс",
mtInformation, TMsgDlgButtons() << mbOK, 0);
5)
Код:
Label4->Caption = FloatToStrF (usd, ffGeneral,7,2) +"$ = "+FloatToStrF(grn,ffGeneral,7,2 ) + " грн. " ;
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума
Старый 12.02.2011, 15:03   #4
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
По умолчанию

Осталось только 1-2. Почему оно на скобках ругается - не понимаю. 1-2 ошибки остались те же.

3-4) Тут код изменился так вот:
Код:
if (((Edit1->Text).Length() == 0) ||
                 ((Edit2->Text).Length() == 0))
        {
           MessageDlg ("Надо ввести цену и курс",
              mtInformation, TMsgDlgButtons() << mbOK, |0);
            if ((Edit1->Text).Length() == 0)
              Edit1->SetFocus();
            else
              Edit2->SetFocus();
            return;
        };
Пересоздал программу, использую уже стандартные обработчики событий которые С-Билдер присваивает. Все равно ругается.
Работаю по этой книге - самый первый пример. -> C++ Builder в задачах и примерах

Автор: Культин Н. Б.
Издательство Санкт-Петербург ХВ-Петербург
Год выпуска:2005
Язык: Русский
Страниц: 335
Формат: PDF

Последний раз редактировалось Вадим Мошев; 25.04.2015 в 18:21.
Fier вне форума
Старый 12.02.2011, 15:34   #5
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
По умолчанию

Вот еще код:


Код:
//---------------------------------------------------------------------------

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

Последний раз редактировалось Вадим Мошев; 25.04.2015 в 18:21.
Fier вне форума
Старый 12.02.2011, 15:42   #6
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Цитата:
Сообщение от Fier Посмотреть сообщение
Осталось только 1-2. Почему оно на скобках ругается - не понимаю. 1-2 ошибки остались те же.

3-4) Тут код изменился так вот:
if (((Edit1->Text).Length() == 0) ||
((Edit2->Text).Length() == 0))
{
MessageDlg ("Надо ввести цену и курс",
mtInformation, TMsgDlgButtons() << mbOK, |0);
if ((Edit1->Text).Length() == 0)
Edit1->SetFocus();
else
Edit2->SetFocus();
return;
};


Пересоздал программу, использую уже стандартные обработчики событий которые С-Билдер присваивает. Все равно ругается.
Работаю по этой книге - самый первый пример. -> C++ Builder в задачах и примерах

Автор: Культин Н. Б.
Издательство Санкт-Петербург ХВ-Петербург
Год выпуска:2005
Язык: Русский
Страниц: 335
Формат: PDF
какие именно ошибки ? убрал | перед нулем все компилится нормально.

ам где 4я ошибка Label4-Caption должно быть Label4->Caption

Последний раз редактировалось Вадим Мошев; 25.04.2015 в 18:22.
wm_leviathan вне форума
Старый 12.02.2011, 15:47   #7
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
По умолчанию

Это Все изменил, все окей. выдается только:

[C++ Error] Konvertor.cpp(19): E2316 '_fastcall TForm1::Edit1Change(TObject *,char &)' is not a member of 'TForm1'
[C++ Error] Konvertor.cpp(44): E2316 '_fastcall TForm1::Edit2Change(TObject *,char &)' is not a member of 'TForm1'
Fier вне форума
Старый 12.02.2011, 15:56   #8
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

_fastcall TForm1::Edit1Change у вас в проекте есть ? я в выше указанных кодов невижу этих событий там только KeyPress. в Unit1.h добавте эти процедуры их там вроде щас нет так вы писали от балды по книге а не обрабатывали события так как хочет того с++ builder. ну или вообще их удалите если они не нужны.
wm_leviathan вне форума
Старый 12.02.2011, 15:57   #9
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
По умолчанию

Я сейчас переписал код наново:


Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

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

void __fastcall TForm1::Edit1Change(TObject *Sender, char &Key)
  {
  if ((Key >= '0') && (Key <= '9'))
    return

    if (Key == DecimalSeparator)
    {
          if ((Edit1->Text).Pos(DecimalSeparator) !=0)
             Key = 0;
             return;
    }

    if (Key == VK_BACK)
       return;

    if (Key == VK_RETUEN)
        {
        Edit2->SetFocus();
        return;
        }

    Key = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2Change(TObject *Sender, char &Key)
{
    if ((Key >= '0') && (Key <= '9'))
       return;

       if (Key == DecimalSeparator)
       {
         if ((Edit2->Text).Pos(DecimalSeparator) !=0)
         Key = 0;
         return;
       }

       if (Key == VK_BACK)
       return;

       if (Key == VK_RETURN)
       {
           Button1->SetFocus();
           return;
       };

       Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 float usd;
       float k;
       float grn;

       if (((Edit1->Text).Length() == 0) ||
                 ((Edit2->Text).Length() == 0))
        {
           MessageDlg ("Надо ввести цену и курс",
              mtInformation, TMsgDlgButtons() << mbOK, 0);
            if ((Edit1->Text).Length() == 0)
              Edit1->SetFocus();
            else
              Edit2->SetFocus();
            return;
        };

        usd = StrToFloat (Edit1->Text);
        k = StrToFloat (Edit2->Text);

        grn = usd * k;

        Label1->Caption = FloatToStrF (usd, ffGeneral,7,2) +
                   "$ = "+FloatToStrF(grn,ffGeneral,7,2) + " грн. " ;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------

Последний раз редактировалось Вадим Мошев; 25.04.2015 в 18:22.
Fier вне форума
Старый 12.02.2011, 16:02   #10
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Konvertor.h там должны быть описаны все процедуры EditChange ButtonClick и т.д.
wm_leviathan вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогаем друг другу в поиске музыки mihali4 Свободное общение 56 16.02.2017 22:03
Помогаем искать программы Levsha100 Свободное общение 265 02.04.2012 14:09
Переустановка Windows Vista на Хр без потери данных(помогаем блондинке) Jane_Herrick Windows 13 17.02.2011 11:45
CorelDRAW X3(помогаем,заказываем) NORS Софт 1 21.02.2009 22:05