Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ListView


Автор: MacTep 22.5.2006, 18:04
Как запретить изменять размеры столбца в компоненте ListView? Пробовал колдовать со свойствами MaxWidth и MinWidth, но к успеху это не привело. 

Автор: Poseidon 22.5.2006, 20:10
А в ListView можно менять размеры столбца? 

Автор: MacTep 22.5.2006, 20:18
Цитата(Poseidon @  22.5.2006,  20:10 Найти цитируемый пост)
А в ListView можно менять размеры столбца? 
Можно. smile Это я про тот случай, когда ViewStyle=vsReport. smile 

Автор: x77 22.5.2006, 23:45
если у TColumn WinWidth = MaxWidth - размеры колонки изменить будет нельзя. 

Автор: MacTep 23.5.2006, 06:42
Цитата(x77 @  22.5.2006,  23:45 Найти цитируемый пост)
если у TColumn WinWidth = MaxWidth - размеры колонки изменить будет нельзя. 
 А у меня при такоих значениях - можно. Только не пойму, почему... smile
 

Автор: Yanis 23.5.2006, 08:39
Цитата(MacTep @  23.5.2006,  07:42 Найти цитируемый пост)
А у меня при такоих значениях - можно. Только не пойму, почему... 

А ты у всех колонок так сделал? Знаешь, с трудом верится, что у всех работает, а у тебя нет smile 

Автор: Sunr1se 23.5.2006, 14:33
Отрывок из мануала:
Цитата

MaxWidth specifies the maximum width, in pixels, for the header section. If MaxWidth equals the MinWidth property, the header section cannot be resized at runtime.

Так что при MaxWidth=MinWidth никак не поменяешь размер. Для убедительности, кусок кода:
Код

procedure TListColumn.SetWidth(Value: TWidth);
begin
  if FWidth <> Value then
  begin
    if ((Value < MinWidth) and (Value >= 0)) then Value := MinWidth  //Value не может быть меньше MinWidth
    else if ((MaxWidth > 0) and (Value > MaxWidth)) then Value := MaxWidth;  //в любом случае Value не превысит MaxWidth
    FWidth := Value;
    DoChange;
  end;
end;
  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)