У меня есть поле со списком владельца, которое отображает строки в столбцах. Процедура рисования может быть разделена между комбо, если я могу каким-то образом передать спецификации столбца в событие OnDrawItem. Естественным способом сделать это было бы передать массив ширины столбцов в свойстве ComboBox.Tag, а затем вернуть его обратно в массив.
Когда я определяю массив столбцов как:
const arrWidth :array[1..4] of integer = (100,100,100,70);
и установите для свойства Tag значение:
ComboBox.Tag := integer(@arrWidth);
а затем в событии OnDrawItem верните его в массив:
Widths :array of integer;
Widths := pointer(ComboBox.Tag);
Я вижу элементы массива в порядке, но массив не знает его длины. Кажется, что он намного длиннее со всеми видами случайных значений.
Я попытался использовать динамический массив, но тогда я даже не получил правильные значения столбца.