Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Вниз

Как проверять установлен флаг или нет   Найти похожие ветки 

 
alex-drob ©   (2008-06-06 01:38) [0]

Есть такие констаны, флаги:
 MESSAGE_FLAG_OFFLINE = $00000001;
 MESSAGE_FLAG_NORECV = $00000004;
 MESSAGE_FLAG_AUTHORIZE = $00000008;
 MESSAGE_FLAG_SYSTEM = $00000040;
 MESSAGE_FLAG_RTF = $00000080;
 MESSAGE_FLAG_CONTACT = $00000200;
 MESSAGE_FLAG_NOTIFY = $00000400;
 MESSAGE_FLAG_MULTICAST = $00001000;
 MAX_MULTICAST_RECIPIENTS = 50;
 MESSAGE_USERFLAGS_MASK = $000036A8;
 MRIM_CS_MESSAGE_ACK = $1009;


и есть переменная flag:dword; в которой установленны какието из флагов. как проверить какие?
Если бы он мог быть один то можно былобы просто проверять

case flag of
MESSAGE_FLAG_NORECV: ...
....

а если сразу несколько флагов?


 
Amoeba ©   (2008-06-06 01:45) [1]

Только для одного флага:
flag and MESSAGE_FLAG_OFFLINE

Для нескольких:
flag and (MESSAGE_FLAG_OFFLINE or MESSAGE_FLAG_NORECV or MESSAGE_FLAG_RTF)


 
alex-drob ©   (2008-06-06 01:57) [2]

т.е. если например два флага установленны, ну предположем
MESSAGE_FLAG_OFFLINE = $00000001;
MESSAGE_FLAG_RTF = $00000080;


и у меня есть переменная flag=$0081

то обе проверки
if flag and MESSAGE_FLAG_OFFLINE then....
if flag and MESSAGE_FLAG_RTF then....
вернут выполнят действия после then?


 
alex-drob ©   (2008-06-06 02:04) [3]

if mList.Flag and MESSAGE_FLAG_NOTIFY then

пишет ошибку
[Error] main.pas(144): E2012 Type of expression must be BOOLEAN


 
Reindeer Moss Eater ©   (2008-06-06 02:11) [4]

А ты верь ему. Должен быть булеан. А у тебя integer


 
Германн ©   (2008-06-06 02:12) [5]


> то обе проверки
> if flag and MESSAGE_FLAG_OFFLINE then....
> if flag and MESSAGE_FLAG_RTF then....вернут выполнят действия
> после then?
>

Ни разу не пробовал, ну думая что вернут. Но это либо дурной вкус, либо полное непонимание.


 
Германн ©   (2008-06-06 02:14) [6]


> Reindeer Moss Eater ©   (06.06.08 02:11) [4]
>
> А ты верь ему. Должен быть булеан. А у тебя integer
>

И слава Борланду.


 
alex-drob ©   (2008-06-06 02:19) [7]

да я ему верю! а как мне теперь из интегера булеан получить? ну или как по другому проверить установлены флаги или нет?


 
Германн ©   (2008-06-06 02:25) [8]


> alex-drob ©   (06.06.08 02:19) [7]
>
> да я ему верю! а как мне теперь из интегера булеан получить?
>  ну или как по другому проверить установлены флаги или нет?
>
>

http://www.delphikingdom.com/lyceum/seminar.asp?ID=2


 
alex-drob ©   (2008-06-06 02:28) [9]

if (mList.Flag and MESSAGE_FLAG_NOTIFY)=MESSAGE_FLAG_NOTIFY then
то есть так?

спасибо большое всем за помощь!


 
Reindeer Moss Eater ©   (2008-06-06 02:29) [10]

if (mList.Flag and MESSAGE_FLAG_NOTIFY) = MESSAGE_FLAG_NOTIFY then


 
alex-drob ©   (2008-06-06 02:33) [11]

спасибо ещё раз!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.053 c
15-1211369055
БарЛог
2008-05-21 15:24
2008.07.06
Иконка кнопки "Вакансии"


15-1211378979
may be I am noob...
2008-05-21 18:09
2008.07.06
SMTP и gmail.com


2-1212792183
redlord
2008-06-07 02:43
2008.07.06
отображение каретки ввода в компоненте edit


2-1212652854
TUserClass
2008-06-05 12:00
2008.07.06
Получить координаты, зная Handle...


11-1190891758
max727
2007-09-27 15:15
2008.07.06
KolFTP Demo не компилится





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский