Ошибка type of expression must be boolean

Type of expression must be BOOLEAN Delphi Решение и ответ на вопрос 602384

0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

1

10.06.2012, 22:20. Показов 5809. Ответов 40


Эх блин ещё с одной программой ошибка((( не поможете разобраться???

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



162 / 76 / 21

Регистрация: 22.04.2012

Сообщений: 221

10.06.2012, 22:50

2

RadioGroup1.Buttons[0].Checked:=true
присвоение!!!
читайте коментарий компилятора

[Ошибка] Unit1.pas(158): Type of expression must be BOOLEAN

исправление: RadioGroup1.Buttons[0].Checked=true



1



uiivalet

12 / 12 / 4

Регистрация: 18.06.2010

Сообщений: 107

10.06.2012, 22:50

3

да тут сплошные ошибки
подскажу

Delphi
1
2
if(RadioGroup1.Buttons[1].Checked:=True)then MO[Number].O_1:=true else
MO[Number].O_1:=false;
Delphi
1
...Checked=True...

двоеточие не ставиться (везде в таких конструкциях)
дальше у тебя переменные не известные, разбирайся
сам писал то?



1



162 / 76 / 21

Регистрация: 22.04.2012

Сообщений: 221

10.06.2012, 22:53

4

[Ошибка] Unit1.pas(210): Undeclared identifier: ‘a’
переменная не найдена
var
a:textfile;

Добавлено через 1 минуту
[Ошибка] Unit1.pas(158): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(160): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(162): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(175): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(177): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(179): Type of expression must be BOOLEAN
[Ошибка] Unit1.pas(210): Undeclared identifier: ‘a’
[Ошибка] Unit1.pas(211): Incompatible types
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘f’
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘u’
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘k’
[Ошибка] Unit1.pas(213): Incompatible types
[Ошибка] Unit1.pas(223): Declaration expected but end of file found
[Ошибка] Unit1.pas(32): Unsatisfied forward or external declaration: ‘TForm1.Memo1Change’
[Ошибка] Unit1.pas(33): Unsatisfied forward or external declaration: ‘TForm1.Label1Click’
[Ошибка] Unit1.pas(34): Unsatisfied forward or external declaration: ‘TForm1.FormCreate’
[Ошибка] Unit1.pas(35): Unsatisfied forward or external declaration: ‘TForm1.RadioGroup1Click’
[Фатальная Ошибка] Project1.dpr(5): Could not compile used unit ‘Unit1.pas’



1



12 / 12 / 4

Регистрация: 18.06.2010

Сообщений: 107

10.06.2012, 22:55

5

olegoner, дак яш говорю, сплошные ошибки



0



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 22:56

 [ТС]

6

Это вы шарите…. А я про себя вообще молчу



0



162 / 76 / 21

Регистрация: 22.04.2012

Сообщений: 221

10.06.2012, 23:08

7

ну переменные
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘f’
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘u’
[Ошибка] Unit1.pas(212): Undeclared identifier: ‘k’
вообще судя по вашим предыдущим вопросом из другого модуля, которогj нет
решение других проблем вам указали



1



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:16

 [ТС]

8

Unit 2 Забыл(((

Добавлено через 5 минут
А как фатальную ошибку исправить?



0



12 / 12 / 4

Регистрация: 18.06.2010

Сообщений: 107

10.06.2012, 23:17

9

end.
вроде бы, у тебя его нет



0



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:19

 [ТС]

10

Эту нашёл, это не то.



0



162 / 76 / 21

Регистрация: 22.04.2012

Сообщений: 221

10.06.2012, 23:21

11

А как фатальную ошибку исправить?

исправьте все другие))



0



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:29

 [ТС]

12

[Error] Unit1.pas(26): Unsatisfied forward or external declaration: ‘TForm1.RadioGroup1Click’
[Fatal Error] Project1.dpr(6): Could not compile used unit ‘Unit1.pas’
Остались эти

Добавлено через 5 минут
Все ошибки исправил… только теперь одна трудность, не отображаются вопросы…



0



1085 / 571 / 79

Регистрация: 07.04.2011

Сообщений: 971

Записей в блоге: 2

10.06.2012, 23:30

13

Запустил его без записи в файл, и без проверки логики
Тест_fix.rar



1



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:30

 [ТС]

14

Вот тут



0



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:37

 [ТС]

15

Да, вот так же и у меня

Добавлено через 5 минут
Это возможно исправить или придется делать через Memo??



0



12 / 12 / 4

Регистрация: 18.06.2010

Сообщений: 107

10.06.2012, 23:41

16

Sabatag, что не работает то



0



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:46

 [ТС]

17

Когда запускаешь программу, не отображаются вопросы и ответы



0



12 / 12 / 4

Регистрация: 18.06.2010

Сообщений: 107

10.06.2012, 23:49

18

постой, а зачем тогда кнопка button1?

Добавлено через 50 секунд
при её нажатии начинается тестирование? или я не так понял



1



0 / 0 / 0

Регистрация: 22.12.2011

Сообщений: 43

10.06.2012, 23:50

 [ТС]

19

Хм я дурак)



0



1085 / 571 / 79

Регистрация: 07.04.2011

Сообщений: 971

Записей в блоге: 2

10.06.2012, 23:50

20

Все отображается. Сначала нажми на Buttons1 -появятся вопросы. А Затем Radiogrup и Buttons2



1



 
Cossys
 
(2002-10-31 11:53)
[0]

if ((POS(«3425», frmPNLWork.DBMemo2.Text)) and (POS(«PRED», frmPNLWork.DBMemo2.Text))) then
тут курсор останавливается

begin

Edit;



Post;

end

что такое?


 
Skier
 
(2002-10-31 11:55)
[1]

>Cossys

if (POS(«3425», frmPNLWork.DBMemo2.Text) <> 0) and (POS(«PRED», frmPNLWork.DBMemo2.Text) <>{или = не знаю что нужно} 0) then…


 
Cossys
 
(2002-10-31 11:56)
[2]

да, сэнкс, оно


 
Zemal
 
(2002-10-31 12:22)
[3]

>> Cossys

Функция POS возвращает номер позиции в строке первого вхождения подстроки, а значит она возвращает значение Integer, а это тебе не Boolean, поэтому проверяй, не равно-ли возвращаемое значение нулю (… <> 0), тогда это будет True или False, т.е. Boolean. Следи за соответствием типов, родной :).


 
gek
 
(2002-10-31 12:46)
[4]

можно и так



if (bool(POS("3425",frmPNLWork.DBMemo2.Text))) then


 
Zemal
 
(2002-10-31 13:05)
[5]

>> gek

И что вернёт твой bool() если pos() вернёт к примеру 54? Unknown? И как if это обработает? Какой блок он выполнит then или else? В данном случае никакой небудет выполнен… bool() корректно может обработать только 0 и 1… в остальных случаях будет возвращено неопределённое значение, т.е. Unknown. Правильно? Ну в принципе это тоже вариант :). Смотря какая логика требуется от if-а :). Это так сказать тройное ветвление получится :).


 
Opuhshii
 
(2002-10-31 13:30)
[6]

2Zemal © (31.10.02 13:05)

странно это все…. как-то было предположение что bool это либо 0 — что есть false либо все остальное — что есть true,… разве нет?,..


 
Zemal
 
(2002-10-31 13:45)
[7]

Да фиг его знает… это лично мне так кажется… :) я не пользуюсь подобным :) и про оператор goto, к примеру, тоже ничего сказать немогу и label в тексте ставить неумею… мне просто либо неприспичил этот bool, либо он просто ни к чему, как в прочем и ряд других функций, которые иногда только затрудняют понимание смысла исходника :).


 
gek
 
(2002-10-31 14:13)
[8]

Посм сам что вернет, тогда и поймещь

if (bool(POS(«3″,»24234»))) then

showmessage(«found»);

if (bool(POS(«3″,»2424»))) then

showmessage(«found»)

else

showmessage(«not found»)


 
Zemal
 
(2002-10-31 14:16)
[9]

>> gek

Да. Понял. А вопрос мона? Что будет возвращено если bool(Null)?


 
Opuhshii
 
(2002-10-31 14:36)
[10]

2Zemal © (31.10.02 14:16)

а что такое Null?


 
Opuhshii
 
(2002-10-31 14:36)
[11]

2Zemal © (31.10.02 14:16)

и чему оно равно..


 
gek
 
(2002-10-31 14:36)
[12]

тут наверное надо так

if VarIsNull(null) then

showmessage(«value is null»)


 
Zemal
 
(2002-10-31 14:44)
[13]

>> Опухший

Null := Opuhshii;


 
Zemal
 
(2002-10-31 14:51)
[14]

>> gek

Спасибо, я это знал :). Я просил ответить что произойдёт, если bool получит неопределённый параметр, т.е. Null?


 
gek
 
(2002-10-31 15:02)
[15]

Наверное исключение о невозможности конвертировать тип


 
Zemal
 
(2002-10-31 15:09)
[16]

>> gek

аха :) так что легче написать своё функцию, которая возвращала значение boolean в зависимости от результата, чем использовать bool… но это уже другая история :)


    msm.ru

    Нравится ресурс?

    Помоги проекту!

    Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.


    Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
    1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
    2. Как «свернуть» программу в трей.
    3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
    4. Как прочитать список файлов, поддиректорий в директории?
    5. Как запустить программу/файл?
    … (продолжение следует) …


    Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
    Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


    Внимание
    Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
    Повторная попытка — 60 дней. Последующие попытки бан.
    Мат в разделе — бан на три месяца…

    >
    Ошибка в коде

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    09.11.07, 11:14

      Junior

      *

      Рейтинг (т): нет

      Прога не комплируцо :wall: Я еще не встречал таких ошибок, да и дебагер сломался :angry: , Поэтому прошу помощи.
      Я переводил с 1 языка на другой.
      1-ая зона Var Eu,ET5: integer;

      ExpandedWrap disabled

         Eu:=ET5-(ET5/62)*62;

         Ew[10]:=DB(Eu);

         Eu:=ET5/62;

         Eu:=Eu-(Eu/62)*62;

         Ew[1]:=DB(Eu);

         Eu:=ET5/62;

         Eu:=Eu/62;

         Eu:=Eu-(Eu/62)*62;

         Ew[8]:=DB(Eu);

         Eu:=ET5/62;

         Eu:=Eu/62;

         Eu:=Eu/62;

         Eu:=Eu-(Eu/62)*62;

         Ew[4]:=DB(Eu);

      2-ая зона Var Те же и EU1: array [0..255] of integer;

      ExpandedWrap disabled

         Ev:=EU1[1]+EU1[2]+EU1[3]+EU1[4]+EU1[6]+EU1[7]+EU1[8]+EU1[9]+EU1[10]+EU1[11]+EU1[12];

      Тут ошибка [Error] Unit1.pas(768): Incompatible types: ‘Integer’ and ‘Extended’

      3-я зона var d9: integer; Da: string; DA1: string; Db: string; aJ: array [0..255] of

      ExpandedWrap disabled

        if Length(IntToStr(SL))=StrToInt(aJ[42]) then begin d9:=Random(2);

        if d9=1 then Da:=aJ[37] else Da:=aJ[33];

        if intToStr(SL):=aJ[42] then d9:=Random(2);

        if d9=1 then DA1:=aJ[16]

         else DA1:=aJ[9];

        if IntToStr(SL)=aJ[7] then begin d9:=Random(2);

        if d9=1 then DA1:=aJ[32]

        else DA1:=aJ[53];

        end;

        if IntToStr(SL)=aJ[58] then begin d9:=Random(2);

         if d9=1 then DA1:=aJ[21]

         else DA1:=aJ[49];

        end;

        if IntToStr(SL)=aJ[62] then begin d9:=Random(2);

         if d9=1 then DA1:=aJ[13]

        else DA1:=aJ[58];

        end;

        if IntToStr(SL)=aJ[14] then begin d9:=Random(2);

        if d9=1 then DA1:=aJ[5]

        else DA1:=aJ[29];

        end;

      [Error] Unit1.pas(116): Type of expression must be BOOLEAN

      Помогите плз, я незнаю что тут делать, я все перепробовал…


      —Ins—



      Сообщ.
      #2

      ,
      09.11.07, 11:19

        Цитата

        if intToStr(SL):=aJ[42]

        Двоеточие убрать.


        Dialup5



        Сообщ.
        #3

        ,
        09.11.07, 11:20

          Junior

          *

          Рейтинг (т): нет

          СПС! Как я сам не заметил :


          Domino



          Сообщ.
          #4

          ,
          09.11.07, 11:20

            Цитата Dialup5 @ 09.11.07, 11:14

            да и дебагер сломался

            Что дебажить, если

            Цитата Dialup5 @ 09.11.07, 11:14

            е комплируцо

            :blink:


            Dialup5



            Сообщ.
            #5

            ,
            09.11.07, 11:23

              Junior

              *

              Рейтинг (т): нет

              Дебагер показывает на другие абсолютна строчечки :


              WildBear



              Сообщ.
              #6

              ,
              09.11.07, 11:24

                Senior Member

                ****

                Рейтинг (т): 47

                Цитата

                ошибка [Error] Unit1.pas(768): Incompatible types: ‘Integer’ and ‘Extended’

                Дробное число пытаешься писать в целую пременную. Имеется в виду ,что при делении число может получиться дробным.
                Так что приводи частное к целому типу.

                Цитата

                [Error] Unit1.pas(116): Type of expression must be BOOLEAN

                ExpandedWrap disabled

                  if intToStr(SL):=aJ[42] then d9:=Random(2); // здесь проверка должна быть, не присваивание !!


                Dialup5



                Сообщ.
                #7

                ,
                09.11.07, 12:19

                  Junior

                  *

                  Рейтинг (т): нет

                  ExpandedWrap disabled

                     d6(d7);

                     Ew[Et]:=d5;

                     bj_forLoopAIndex:=bj_forLoopAIndex+1;

                     Ew[7]:=SubStringBJ(d8(SL5),1,1);

                     Ew[2]:=SubStringBJ(d8(SL5),2,2);

                     Eu:=mod(ET5,62);// Eu:=ET5-(ET5/62)*62;                           //[Error] Unit1.pas(757): Expression expected but ‘MOD’ found

                     Ew[10]:=DB(Eu);

                     Eu:=ET5/62;

                     Eu:=mod(Eu,62);// Eu:=Eu-(Eu/62)*62;

                     Ew[1]:=DB(Eu);

                     Eu:=ET5/62;

                     Eu:=Eu/62;

                     Eu:=mod(Eu,62);//Eu:=Eu-(Eu/62)*62;

                     Ew[8]:=DB(Eu);

                     Eu:=ET5/62;

                     Eu:=Eu/62;

                     Eu:=Eu/62;

                     Eu:=mod(Eu,62);//Eu-(Eu/62)*62;

                     Ew[4]:=DB(Eu);

                     bj_forLoopAIndex:=1;

                     bj_forLoopAIndexEnd:=12;

                    if (Ew[bj_forLoopAIndex]=aJ[1]) then EU1[bj_forLoopAIndex]:=0.26;   //[Error] Unit1.pas(775): ‘;’ expected but ‘IF’ found

                  Теерь так :

                  Сообщение отредактировано: Dialup5 — 09.11.07, 14:16


                  Voice



                  Сообщ.
                  #8

                  ,
                  09.11.07, 15:04

                    ExpandedWrap disabled

                      Eu := ET5 mod 62; //mod(ET5,62);// Eu:=ET5-(ET5/62)*62;

                      // и так везде

                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                    0 пользователей:

                    • Предыдущая тема
                    • Delphi: Общие вопросы
                    • Следующая тема

                    Рейтинг@Mail.ru

                    [ Script execution time: 0,0279 ]   [ 16 queries used ]   [ Generated: 12.02.23, 00:13 GMT ]  

                    Error

                    Error: Compile Error: Condition expression must be of type Boolean at line 8 column 9

                    Class

                    public class DataenteringVF2 {
                        public string name      {set;get;}
                        public string lastName  {set;get;}
                        public string firstName {set;get;}
                        public decimal salary   {set;get;}
                        public integer age      {set;get;}
                        public void EmployeeDetails(){
                            if (name='bhargav'){
                                salary=20000;
                                age=20;
                            }
                       }
                    }
                    

                    Adrian Larson's user avatar

                    Adrian Larson

                    146k34 gold badges214 silver badges399 bronze badges

                    asked Jan 24, 2017 at 4:18

                    Bhargav's user avatar

                    0

                    You need to use double equals (==) for comparison:

                    Works

                    if (name == 'some value')
                    

                    Fails

                    if (name = 'some value')
                    

                    Have a look at Understanding Expression Operators:

                    Operator
                    ==

                    Syntax
                    x == y

                    Description
                    Equality operator. If the value of x equals the value of y, the expression evaluates to true. Otherwise, the expression evaluates to false.

                    Note:

                    • Unlike Java, == in Apex compares object value equality, not reference equality, except for user-defined types. Consequently:
                      • String comparison using == is case-insensitive
                      • ID comparison using == is case-sensitive, and does not distinguish between 15-character and 18-character formats
                      • User-defined types are compared by reference, which means that two objects are equal only if they reference the same location in memory.
                        You can override this default comparison behavior by providing equals
                        and hashCode methods in your class to compare object values instead.
                    • For sObjects and sObject arrays, == performs a deep check of all sObject field values before returning its result. Likewise for
                      collections and built-in Apex objects.
                    • For records, every field must have the same value for == to evaluate to true. x or y can be the literal null.
                    • The comparison of any two values can never result in null.
                    • SOQL and SOSL use = for their equality operator, and not ==. Although Apex and — SOQL and SOSL are strongly linked, this
                      unfortunate syntax discrepancy exists because most modern languages
                      use = for assignment and == for equality. The designers of Apex deemed
                      it more valuable to maintain this paradigm than to force developers to
                      learn a new assignment operator. The result is that Apex developers
                      must use == for equality tests in the main body of the Apex code, and
                      = for equality in SOQL and SOSL queries.

                    answered Jan 24, 2017 at 4:19

                    Adrian Larson's user avatar

                    Adrian LarsonAdrian Larson

                    146k34 gold badges214 silver badges399 bronze badges

                    Condition expression must be of type Boolean.
                    In this code, you used single equal Assignment Operator = expression on line 8. This expression not type of Boolean only for assign values from right side Operands to left side Operands. You should use == condition expression (Relational Operator) of type Boolean. It is use for compare two objects based on memory reference.

                    If(name=='bhargav'){
                        Salary=20000;
                        age=20;
                    }
                    

                    SF_user's user avatar

                    SF_user

                    3,5869 gold badges38 silver badges56 bronze badges

                    answered Jan 24, 2017 at 7:39

                    Udit Rana's user avatar

                    Понравилась статья? Поделить с друзьями:
                  • Ошибка u0100 мерседес
                  • Ошибка the installer has encountered an unexpected error installing this package 2503
                  • Ошибка twain сканера windows 10
                  • Ошибка u0100 мазда сх5
                  • Ошибка the game is already running