Вниз
Скачать: CL | DM;

по структуре 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.082 c
2-1274181203
Andrey93
2010-05-18 15:13
2010.08.27
Проблема. Рисование на Canvas е


2-1273815100
tippa
2010-05-14 09:31
2010.08.27
алгоритм удаления дубликатов из списка


15-1267749283
Дмитрий С
2010-03-05 03:34
2010.08.27
А я и не знал...


15-1265798145
И. Павел
2010-02-10 13:35
2010.08.27
Смена базы данных.(2)


6-1217400351
workbench
2008-07-30 10:45
2010.08.27
TNMSMTP




   Наверх