Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
katkat
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 34
#1

Ошибка Cannot convert AnsiString to Bool - C++ Builder

01.03.2012, 22:52. Просмотров 1697. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
void __fastcall TForm3::Edit1Change(TObject *Sender)
{
Button1->Enabled=Edit1->Text;
}
вот код, как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 22:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка Cannot convert AnsiString to Bool (C++ Builder):

Ошибка cannon convert 'AnsiString' to 'char' - C++ Builder
Помогите. пожалуйста. Пишу программу, нужно записать название команды и ее баллы в массив, в коде Form1->mas.name=(Edit1->Text); ...

Ошибка: E2034 Cannot convert 'TStrings' to 'AnsiString' - C++ Builder
когда программа запускается вылезает ошибка: E2034 Cannot convert 'TStrings' to 'AnsiString' for (int...

[C++ Error] Cannot convert 'string' to 'AnsiString' - C++ Builder
Ошибка: Unit1.cpp(79): E2034 Cannot convert 'string' to 'AnsiString' Строки: string WorkInfo; Edit1->Text=WorkInfo;// тут...

[C++ Error] Unit1.cpp(50): E2034 Cannot convert 'AnsiString' to 'int' - C++ Builder
помогите пожалуйста void __fastcall TForm1::J() { int m=StringGrid2->Cells.d]; int n=mas.s; int q=mas.p; if...

Ошибка приведения типов: E2357 Reference initialized with 'bool', needs lvalue of type 'bool' - C++ Builder
Подскажите решение проблемы, программа на rad studio2010, проблема в этой строке ((TScrollBox*)c)->OnMouseWheel(c,Shift, WheelDelta,...

Как перевести текст из AnsiString (в формате UTF8) в AnsiString формата Windows-1251? - C++ Builder
Поиск по форуму не решил текущую проблему: 1. Есть текст в формате UTF-8 в величине: AnsiString qw; Вопрос: 2. Как перевести текст в...

8
Sergey-K
233 / 224 / 13
Регистрация: 27.10.2011
Сообщений: 249
01.03.2012, 22:57 #2
C++
1
2
3
4
if(Edit1->Text == "")
  Button1->Enabled = false;
else
  Button1->Enabled = true;
1
BRcr
4009 / 2298 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
01.03.2012, 22:59 #3
katkat, аглицкий разумеем, али как?
Прямым текстом ведь компилятор говорит, конвертировать текст в логическое ДА\НЕТ не может. Подскажите ему, как. Например:
C++
1
2
3
if( Edit1->Text == "да" ) {
  Button1->Enabled = true;
}
1
katkat
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 34
01.03.2012, 23:15  [ТС] #4
спасибо большое!
0
Байт
Эксперт C
16561 / 10831 / 1646
Регистрация: 24.12.2010
Сообщений: 20,922
02.03.2012, 00:20 #5
Цитата Сообщение от katkat Посмотреть сообщение
Cannot convert AnsiString to Bool
Если по-честному, я бы тоже не смог
char или int, double даже еще бы конвертировал с грехом/2.
0
Sergey-K
233 / 224 / 13
Регистрация: 27.10.2011
Сообщений: 249
02.03.2012, 00:37 #6
Работает
C++
1
Button1->Enabled = *((bool *)Edit1->Text.c_str());
0
BRcr
4009 / 2298 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
02.03.2012, 00:45 #7
Конечно... компилятор бессилен перед явными приведениями типа. Самый верный путь к трудноуловимым ошибкам в программе
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
02.03.2012, 01:55 #8
Цитата Сообщение от Sergey-K Посмотреть сообщение
Работает
А с чего бы этому не работать, здесь даже приводить ничего не надо, char и так неявно приводится к bool, как и любой другой встроенный тип. Собственно поэтому в C++ и работают такие конструкции как
C++
1
2
int a = 10;
if(a % 2) { /*...*/ }
C++
1
2
FILE* f = fopen("file.txt", "r");
if(!f) puts("error");
C++
1
2
3
const char* s = "text";
const char* p = s;  
while(*p) { /*...*/ ++p; }
и т.д.
0
Maluda
1091 / 524 / 56
Регистрация: 18.08.2009
Сообщений: 761
Завершенные тесты: 1
02.03.2012, 19:11 #9
katkat, рекомендую пользоваться стандартными функциями Билдера

C++
1
2
bool __fastcall StrToBool(const System::UnicodeString S);
bool __fastcall StrToBoolDef(const System::UnicodeString S, const bool Default);
Например:
C++
1
Button1->Enabled=StrToBoolDef(Edit1->Text,false);
0
02.03.2012, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2012, 19:11
Привет! Вот еще темы с ответами:

ошибка в dll с классом AnsiString - C++ Builder
Возникла такая проблема: при использовании во внутренних функциях dll типа AnsiString возникают различные Linker Error-ы, например...

Ошибка удаления дин. массива AnsiString - C++ Builder
Здравствуйте! Меня уже несколько лет приследует одна и та же проблема, которой я не могу найти решение. Вкратце: при удалении...

AnsiString ошибка Multiple declaration for 'str' - C++ Builder
В идеале надо первое слово выкинуть с текста (матерное ;D) Вот я чет не пойму нифига, может подскажет кто... в начале все нормально с...

Ошибка при преобразовании AnsiString в char* - C++ Builder
TDateTime tt = DateTimePicker1->Date; char* proc_beggin_date = (DateToStr(tt)).c_str(); Почему в результате в строке proc_beggin_date...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru