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

Вниз

по структуре LVITEM   Найти похожие ветки 

 
tippa   (2010-03-07 10:35) [0]

lvitem: TLVItem;

что значит
lvitem.state:=0;
lvitem.statemask:=0

в чем отличие этих полей?

почему пишем "or" а не "and", если надо и то и другое заполнять?
lvitem.mask:=LVIF_STATE or LVIF_TEXT

будут ли заполнены поля
lvitem.state:=0;
lvitem.statemask:=0

если
lvitem.mask:=LVIF_TEXT


 
MBo ©   (2010-03-07 13:21) [1]

>в чем отличие этих полей?
statemask показывает, какие поля в state будут приниматься во внимание, а какие игнорироваться

>почему пишем "or" а не "and", если надо и то и другое заполнять?
потому что нужно разобраться, что означают эти операции


 
0x00FF00   (2010-03-07 13:30) [2]

StateMask — это список полей, на которые система вообще должна будет обращать внимание.
Ну а Mask — это сопстно текущий набор полей.

про OR и AND:
скорее всего, Вы не понимаете логики работы битовых масок.
вот смотрите.

есть у нас восьмибитная беззнаковая переменная mask (в Делфях — тип byte):
mask: 0000 0000
и есть две константы LVIF_TEST1 и LVIF_TEST2:
LVIF_TEST1 = 0000 0100
LVIF_TEST1 = 0001 0000

Эти константы — так называемые битовые маски.
Они способны включать в переменной mask нужные биты, отвечающие, по логике программы, за то или иное действие.

Допустим, что третий бит отвечает за некое действие TEST1, а пятый — за TEST2.
Что нужно сделать, чтобы в маске проставить способность и на TEST1, и на TEST2?
Ответ: получить в переменной mask значение 0001 0100.
Именно поэтому нам нужен OR.
Если использовать AND, то, в полном согласии с таблицей истинности этой функции, переменная mask просто занулится.

ps. эх, опоздал =)



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

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

Наверх




Память: 0.45 MB
Время: 0.059 c
15-1266247102
TStas
2010-02-15 18:18
2010.08.27
Программное разраривание


15-1266945132
Ega23
2010-02-23 20:12
2010.08.27
С прздником, мужики!


15-1274178058
RWolf
2010-05-18 14:20
2010.08.27
Найдите ошибку в рассуждении


15-1272975151
NailMan
2010-05-04 16:12
2010.08.27
К летнему сезону киберматрицы готов!


2-1265836336
Dmitrijan
2010-02-11 00:12
2010.08.27
Загрузка exe файла в Memo





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский