nesco писал(а):
означает $04 и есть ли другие значенияManFlags это битовая маска установленных менеджеров(по порядку следования в списке св-тв) - мог бы кстате и в codegen посмотреть
nesco писал(а):
Да он в Init изначально был и никоим образом к BoxDrawManager отношения не имел.как же так не имел? А это тогда что:
nesco писал(а):
или аналогичное, вызывает OnMeasureItem для исходных строк, а конкретные свойства менеджеров еще не определены и к ихним полям нет доступа для расчета высоты пункта.я вижу совершенно прямое отношение: Init -> SetStrings -> OnMeasureItem -> _prop_BoxDrawManager(use). Я же говорил о:
_prop_BoxDrawManager(set) -> SetStrings -> OnMeasureItem -> _prop_BoxDrawManager(use) - не вижу никаких принципиальных ограничений для такой перестановки вызовов
------------ Дoбавленo:
кстате говоря, если _OnMeasureItem вызывается для каждого изменения списка(а может и для отрисовки?), то для большого количества пунктов эта операция будет очень не продуктивной. Правильнее надо расчет высоты переносить в _prop_IconsManager(set), а тут отдавать уже готовый вариант:
#pas
procedure THIComboBox.SetIconsManager;
begin
ItemHeight := max((value.imgsz + _prop_BoxDrawManager.AddSize * 2), PControl(Sender).Canvas.TextExtent('W').cy;
end;
function THIComboBox._OnMeasureItem;
begin
Result:= ItemHeight;
end;