Конференция "Прочее" » Автоматический ресайз колонок в ListView
 
  • SPeller © (25.01.12 15:42) [0]
    Всем привет! Давно не юзаль Дельфи, что-то совсем навыки потерял.
    Есть ListView в режиме Report. Есть несколько колонок, у первой AutoSize установлен в True. Без данных - всё отлично, колонки выравниваются по ширине окна, горизонтальный скролл не появляется. Добавляю контролу строки, которые не умещаются в один экран, в результате у контрола появляется сразу два скролла. Чег быть не должно - колонка, которая имеет AutoSize, по идее, должна сжаться на ширину вертикального скролла, чтобы не было горизонтального. Если после этого сделать любой ресайз контрола, даже на 1 пиксель - колонки становятся на свои места и горизонтальный скролл исчезает. Как сделать так, чтобы этого горизонтального скролла не было сразу после добавления строк?

    ХЕ
  • SPeller © (25.01.12 15:46) [1]
    Ой, блин, не в тот раздел запостил, прошу модеров перенести.
  • SPeller © (26.01.12 12:55) [2]
    ап
  • SPeller © (26.01.12 15:38) [3]
    Понятно, мастера дельфи - мастера потрепаться )
    Решил дело написанием наследника ListView, в котором при автосайзе колонок из общей ширины вычитаю ширину скроллбара. В результате всё отлично, но слишком сложно, как из пушки по воробьям. В итоге победил обманом, без наследника. Один минус - если вертикального скроллбара нет, то остается пустое место справа, и при ресайзе контрола колонки дергаются, заполняя всю ширину. А потом нашел и этого косяка решение.
    Всем спасибо :)
  • xayam © (26.01.12 15:53) [4]

    > мастера дельфи - мастера потрепаться

    без этого никак

    > Всем спасибо :)

    пожалуйста :)
  • Maksim V. © (02.04.12 01:13) [5]
    Используй сообщение LVM_SETCOLUMNWIDTH с параметром LVSCW_AUTOSIZE_USEHEADER если я правильно понял.
 
Конференция "Прочее" » Автоматический ресайз колонок в ListView
Есть новые Нет новых   [134430   +1][b:0][p:0]