Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2017, 17:46   #1
Fox-
 
Регистрация: 19.08.2014
Сообщений: 3
По умолчанию Условие

здравствуйте, выдает ошибку type of expression must be boolean :
Цитата:
if txt='text' then begin
if ShellExecute(0,nil,win.exe,nil,nil, 5) then
ShowMessage('ok');
end;
Помогите решить проблему
Fox- вне форума Ответить с цитированием
Старый 20.05.2017, 17:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Код:
if ShellExecute(0,nil,win.exe,nil,nil, 5)
а разве ShellExecute возвращает boolean?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2017, 18:14   #3
Fox-
 
Регистрация: 19.08.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а разве ShellExecute возвращает boolean?!
не интересовался, почему выдает ошибку ? Если не сложно напишите рабочий код
Fox- вне форума Ответить с цитированием
Старый 20.05.2017, 18:16   #4
Fox-
 
Регистрация: 19.08.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Fox- Посмотреть сообщение
не интересовался, почему выдает ошибку ? Если не сложно напишите рабочий код
boolean -это что то на подобие ответа, так понял...
Fox- вне форума Ответить с цитированием
Старый 20.05.2017, 21:13   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

boolean - это любое логическое выражение. Фишка:

Код:
if Result then
работает только если Result Объявлен как boolean, это приравнивается к

Код:
if Result = true then
Для всех остальных типов логическим будет выражение, которое однозначно вернёт true либо false, например

Код:
if 1 = 1
...
if a > b
...
if ShellExecute(...) = 0
В общем, шеллекзекьют возвращает код результата выполнения (0 = успешно), а не логическое значение "Выполнено" - "не выполнено". Соответственно для использования в if нужно что-то больше, чем просто ShellExecute.

Об этом написано в справке. Если долго и лениво открывать справку - можно перейти прямо к функции в модуле, где она объявлена, и увидеть все её значения.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие в PHP - Не работает условие: не выводит сообщение. Ave_Ave_Ave PHP 13 17.06.2016 12:20
условие komra2 C# (си шарп) 9 27.04.2016 01:17
Условие иф ABA2 Microsoft Office Excel 7 25.04.2013 15:19
условие a.n.o.n.i.m Помощь студентам 10 27.09.2011 12:52
условие Neymexa Общие вопросы .NET 3 19.04.2009 15:39