powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTreeNode.SetStateIndex
7 сообщений из 7, страница 1 из 1
TTreeNode.SetStateIndex
    #39599208
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто мне объяснит, в чем смысл этой манипуляции?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
function IndexToStateImageMask(I: Longint): Longint;
begin
  Result := I shl 12;
end;

procedure TTreeNode.SetStateIndex(Value: Integer);
var
  Item: TTVItem;
begin
  if not Deleting and (Value <> StateIndex) then
  begin
    FStateIndex := Value;
    if Value >= 0 then Dec(Value);
    with Item do
    begin
      mask := TVIF_STATE or TVIF_HANDLE;
      stateMask := TVIS_STATEIMAGEMASK;
      hItem := ItemId;
      state := IndexToStateImageMask(Value + 1);
    end;
    TreeView_SetItem(Handle, Item);
  end;
end;


С уважением, Vasilisk
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599233
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо необходимый аджастинг для битового сдвига в IndexToStateImageMask
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599234
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,
видимо, нужно чтобы State для "0" и "-1" было одинаковым.

Забавно, кстати, посмотреть на результат для других отрицательных индексов.
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599242
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_в чем смысл этой манипуляции?

Сдвинуть нулевой индекс в первый?..

А в общем - не обращай внимания, VCL полна индусского кода, этому нет разумного объяснения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599245
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисЗабавно, кстати, посмотреть на результат для других отрицательных индексов.Если юзер захочет использовать иные отрицательные значения, помимо стандартного -1 (для индикации отсутствия глифа) - то никто не может запретить ему стрелять себе в ногу :)
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599247
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА в общем - не обращай внимания, VCL полна индусского кода, этому нет разумного объяснения.Случается, что "индусский код" - косвенная/некорректная работа автоматизированных средств. Например вырезание кусков, предназначенных для внутреннего тестирования.
...
Рейтинг: 0 / 0
TTreeNode.SetStateIndex
    #39599271
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСдвинуть нулевой индекс в первый?..Нет. Вначале уменьшить на 1, а потом увеличить на 1
white_niggerВидимо необходимый аджастинг для битового сдвига в IndexToStateImageMaskВ итоге значение никак не меняется
Соколинский Борисвидимо, нужно чтобы State для "0" и "-1" было одинаковым.Да. Похоже на то. Но как по мне такой код
Код: pascal
1.
if Value < 0 { = -1} then Value := 0;

был бы гораздо понятнее
Dimitry SibiryakovА в общем - не обращай внимания,Понадобилось повторить функционал. Вот и думаю в чем великая идея. Похоже предположения Бориса ближе всего к истине
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TTreeNode.SetStateIndex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]