Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: 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 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.129 c
15-1264587985
Oleg
2010-01-27 13:26
2010.08.27
Может кто подскажет...


2-1274084890
REX
2010-05-17 12:28
2010.08.27
метод ExecSQL (компонент ADOQuery)


15-1264404182
Polkin
2010-01-25 10:23
2010.08.27
ЗАГС - вопросы


9-1181152411
CMOS
2007-06-06 21:53
2010.08.27
Новый Asphyre 4.0


2-1266306224
Den
2010-02-16 10:43
2010.08.27
Как прочитать логи?