![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Type of expression must be BOOLEAN - что за хрень
Cossys © (2002-10-31 11:53:00)if ((POS("3425", frmPNLWork.DBMemo2.Text)) and (POS("PRED", frmPNLWork.DBMemo2.Text))) then тут курсор останавливается
begin
Edit;
...
Post;
end
что такое?
Zemal (2002-10-31 15:09:00) [1]>> gek
аха :) так что легче написать своё функцию, которая возвращала значение boolean в зависимости от результата, чем использовать bool... но это уже другая история :)
gek (2002-10-31 15:02:00) [2]Наверное исключение о невозможности конвертировать тип
Zemal (2002-10-31 14:51:00) [3]>> gek
Спасибо, я это знал :). Я просил ответить что произойдёт, если bool получит неопределённый параметр, т.е. Null?
Zemal (2002-10-31 14:44:00) [4]>> Опухший
Null := Opuhshii;
Opuhshii (2002-10-31 14:36:00) [5]2Zemal © (31.10.02 14:16)
а что такое Null?
Opuhshii (2002-10-31 14:36:00) [6]2Zemal © (31.10.02 14:16)
и чему оно равно..
gek (2002-10-31 14:36:00) [7]тут наверное надо так
if VarIsNull(null) then
showmessage("value is null")
Zemal (2002-10-31 14:16:00) [8]>> gek
Да. Понял. А вопрос мона? Что будет возвращено если bool(Null)?
gek (2002-10-31 14:13:00) [9]Посм сам что вернет, тогда и поймещь
if (bool(POS("3","24234"))) then
showmessage("found");
if (bool(POS("3","2424"))) then
showmessage("found")
else
showmessage("not found")
Zemal (2002-10-31 13:45:00) [10]Да фиг его знает... это лично мне так кажется... :) я не пользуюсь подобным :) и про оператор goto, к примеру, тоже ничего сказать немогу и label в тексте ставить неумею... мне просто либо неприспичил этот bool, либо он просто ни к чему, как в прочем и ряд других функций, которые иногда только затрудняют понимание смысла исходника :).
Opuhshii (2002-10-31 13:30:00) [11]2Zemal © (31.10.02 13:05)
странно это все.... как-то было предположение что bool это либо 0 - что есть false либо все остальное - что есть true,... разве нет?,..
Zemal (2002-10-31 13:05:00) [12]>> gek
И что вернёт твой bool() если pos() вернёт к примеру 54? Unknown? И как if это обработает? Какой блок он выполнит then или else? В данном случае никакой небудет выполнен... bool() корректно может обработать только 0 и 1... в остальных случаях будет возвращено неопределённое значение, т.е. Unknown. Правильно? Ну в принципе это тоже вариант :). Смотря какая логика требуется от if-а :). Это так сказать тройное ветвление получится :).
gek (2002-10-31 12:46:00) [13]можно и так
if (bool(POS("3425",frmPNLWork.DBMemo2.Text))) then
Zemal (2002-10-31 12:22:00) [14]>> Cossys
Функция POS возвращает номер позиции в строке первого вхождения подстроки, а значит она возвращает значение Integer, а это тебе не Boolean, поэтому проверяй, не равно-ли возвращаемое значение нулю (... <> 0), тогда это будет True или False, т.е. Boolean. Следи за соответствием типов, родной :).
Cossys (2002-10-31 11:56:00) [15]да, сэнкс, оно
Skier (2002-10-31 11:55:00) [16]>Cossys
if (POS("3425", frmPNLWork.DBMemo2.Text) <> 0) and (POS("PRED", frmPNLWork.DBMemo2.Text) <>{или = не знаю что нужно} 0) then...