Почему не работает конструкция IntToStr(StrToInt())
Код:
Form1->Label12->Caption=IntToStr(StrToInt(Form1->Label12->Caption)+1);
выдает
[C++ Error] Unit2.cpp(1744): E2285 Could not find a match for 'IntToStr(AnsiString)'
Среда разработки bds2006
Михаил
Уверены, что в коде написано именно так как вы здесь написали и что ошибка именно в этой строке? У меня этот код работает.
Цитата: nikitozz
Уверены, что в коде написано именно так как вы здесь написали и что ошибка именно в этой строке? У меня этот код работает.
Хм. Чудеса и непонятки.
1. да, уверен, что ошибка ссылается на эту строку.
2. таких ошибок в проекте масса, и все на анологичные конструкции
3. код перенесен из проекта bcb6 (создал проект на bds2006 и перетаскивал туда код.
4. в пустом проекте конструкция действительно работает.
ничего не понимаю.
SysUtils.hpp подключен?
Просмотрите #define'ы в вашем проекте. Не переопределяется ли где-нибудь функция? Попробуйте перейти по Find Declaration и посмотреть куда она ссылается.
Да нет тут никаких чудес. Автор просто перепутал - ошибка об этом именно говорит.
Цитата: MikkiAN
Доброе время суток. не могу понять почему не работает такая конструкция
выдает
[C++ Error] Unit2.cpp(1744): E2285 Could not find a match for 'IntToStr(AnsiString)'
Код:
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;
Цитата: kot_
Да нет тут никаких чудес. Автор просто перепутал - ошибка об этом именно говорит.
Да нет, к сожалению, не перепутал.
Код:
class Log : public TThread
{
private:
protected:
void __fastcall Execute();
public:
...
void __fastcall Log::Execute()
{
....
do
{
Synchronize((TThreadMethod)&Osh);
}
while(Form1->CheckBox5->Checked);
....
}
{
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 прога откомпилировалась без ошибок.
Цитата: Se AD WMD
Эта ошибка говорит о том, что в ты невнимателен ( в скобках должно быть инт значение а там ансистринг - проверь, нигде не ошибся? попробуй насильно прописать (int)"123"и пр... включи воображение)))
З.Ы. модераторы - не судите строго))
З.Ы. модераторы - не судите строго))
Код:
Form1->Label12->Caption=IntToStr(StrToInt(Form1->Label12->Caption)+1);
StrToInt(Form1->Label12->Caption)+1 это наскока я понимаю int
я не вижу в скобках AnsiString