Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему не работает конструкция IntToStr(StrToInt())

41K
05 сентября 2008 года
MikkiAN
4 / / 05.09.2008
Доброе время суток. не могу понять почему не работает такая конструкция

 
Код:
Form1->Label12->Caption=IntToStr(StrToInt(Form1->Label12->Caption)+1);


выдает
[C++ Error] Unit2.cpp(1744): E2285 Could not find a match for 'IntToStr(AnsiString)'

Среда разработки bds2006

Михаил
288
05 сентября 2008 года
nikitozz
1.2K / / 09.03.2007
Уверены, что в коде написано именно так как вы здесь написали и что ошибка именно в этой строке? У меня этот код работает.
41K
05 сентября 2008 года
MikkiAN
4 / / 05.09.2008
Цитата: nikitozz
Уверены, что в коде написано именно так как вы здесь написали и что ошибка именно в этой строке? У меня этот код работает.




Хм. Чудеса и непонятки.
1. да, уверен, что ошибка ссылается на эту строку.
2. таких ошибок в проекте масса, и все на анологичные конструкции
3. код перенесен из проекта bcb6 (создал проект на bds2006 и перетаскивал туда код.
4. в пустом проекте конструкция действительно работает.

ничего не понимаю.

11
05 сентября 2008 года
oxotnik333
2.9K / / 03.08.2007
SysUtils.hpp подключен?
288
05 сентября 2008 года
nikitozz
1.2K / / 09.03.2007
Чудеса :)

Просмотрите #define'ы в вашем проекте. Не переопределяется ли где-нибудь функция? Попробуйте перейти по Find Declaration и посмотреть куда она ссылается.
1
06 сентября 2008 года
kot_
7.3K / / 20.01.2000
Да нет тут никаких чудес. Автор просто перепутал - ошибка об этом именно говорит.
490
06 сентября 2008 года
frid-karatel
357 / / 15.09.2007
Цитата: MikkiAN
Доброе время суток. не могу понять почему не работает такая конструкция

 
Код:
Form1->Label12->Caption=IntToStr(StrToInt(Form1->Label12->Caption)+1);


выдает
[C++ Error] Unit2.cpp(1744): E2285 Could not find a match for 'IntToStr(AnsiString)'



Может проще записать так:

 
Код:
Form1->Label12->Caption = Form1->Label12->Caption.ToInt() + 1;
41K
08 сентября 2008 года
MikkiAN
4 / / 05.09.2008
Цитата: kot_
Да нет тут никаких чудес. Автор просто перепутал - ошибка об этом именно говорит.



Да нет, к сожалению, не перепутал.

Код:
class Log : public TThread
{
private:
protected:
        void __fastcall Execute();
public:

...

void __fastcall Log::Execute()
{
....
 do
 {
  Synchronize((TThreadMethod)&Osh);  
 }
 while(Form1->CheckBox5->Checked);
....
}


Прикол с фунцией Synchronize. В BCB6 она работала в виде

 
Код:
Synchronize(Osh);


в результате куча ошибок
[C++ Error] Unit2.cpp(223): E2285 Could not find a match for 'TThread::Synchronize(void)'
[C++ Error] Unit2.cpp(967): E2285 Could not find a match for 'IntToStr(AnsiString)'
[C++ Error] Unit2.cpp(968): E2285 Could not find a match for 'IntToStr(AnsiString)'
[C++ Error] Unit2.cpp(969): E2285 Could not find a match for 'IntToStr(AnsiString)'
...

после исправления ошибки E2285 прога откомпилировалась без ошибок.
41K
08 сентября 2008 года
MikkiAN
4 / / 05.09.2008
Цитата: Se AD WMD
Эта ошибка говорит о том, что в ты невнимателен ( в скобках должно быть инт значение а там ансистринг - проверь, нигде не ошибся? попробуй насильно прописать (int)"123"и пр... включи воображение)))
З.Ы. модераторы - не судите строго))



 
Код:
Form1->Label12->Caption=IntToStr(StrToInt(Form1->Label12->Caption)+1);


StrToInt(Form1->Label12->Caption)+1 это наскока я понимаю int
я не вижу в скобках AnsiString
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог