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


Автор: rOOxus 14.8.2008, 08:49
На форме имееться ListView1 у кторого ViewStyle = vsReport. Колонка одна. Для автовыравнивания колонки по ширине всего ListView1 использую код

Код

procedure TForm1.ListView1Resize(Sender: TObject);
var
  wndStyle : Integer;
  ScrollBarWidth : Integer;
begin
  wndStyle := GetWindowLong(ListView1.Handle, GWL_STYLE);
  if (wndStyle and WS_VSCROLL) <> 0 then
    ScrollBarWidth := GetSystemMetrics(SM_CXVSCROLL)
  else
    ScrollBarWidth := 0;

   ListView1.Columns[0].Width := ListView1.Width - 5 - ScrollBarWidth;
end;


Все хорошо выравнивает. Но при изменение ширины ListView1 все арвно выскакивает горизонтальный ScrollBar, который исчетазет при прокрутке вертикального. Как с этим бороться?
Такой фокус на ура прокатывает со StringGrid.

Автор: morpheyushka 14.8.2008, 09:06
Если колонка одна, то в инспекторе (свойствах колонки) поставь AutoSize = true и будет тебе счастье без лишнего кода smile 

Автор: rOOxus 14.8.2008, 09:16
Счастья не будет поскольку такой метод работает только до момента когда список все элементы списка влазят в его высоту. Как только начинаю не помещаться и появляеться вертикальный ScrollBar, то выползает и горизонтальный ScrollBar. Видимо это свойство вообще не учитывает ширину вертикального ScrollBarа и вообще его наличие

Автор: morpheyushka 14.8.2008, 09:54
В DRKB видел статейку по поводу перехвата изменения размера колонки...щас посмотрю

Добавлено через 5 минут и 29 секунд
мда...то, как я понял, что бы колонка не изменялась вобще по своим размерам

извиняюсь, что ввел в заблуждение

Автор: ama_kid 14.8.2008, 10:11
Цитата(rOOxus @  14.8.2008,  08:49 Найти цитируемый пост)
Как с этим бороться?
Попробуй перенести приведённый тобой код в FormResize

Автор: VICTAR 14.8.2008, 13:08
Глянь здесь, хотя может не совсем по теме.. 
http://www.delphilab.ru/content/view/64/63/

Автор: rOOxus 14.8.2008, 13:15
Цитата(ama_kid @ 14.8.2008,  10:11)
Цитата(ama_kid )
Попробуй перенести приведённый тобой код в FormResize

А вот это реально помогло  smile спасибо за советы.

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