Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 18:44   #1
Belfigor
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 12
По умолчанию ListView - убрать скролл.

Не знаю как бороться с горизонтальным скроллом в этой ситуации (на скринах)
Я создаю ListView, по высоте он может отобразить всего 4 строки, когда я добавляю 5-ю строку, у меня автоматом появляются 2 скролл бара, вертикальный и горизонтальный. Вертикальный это хорошо. А вот как избавиться от горизонтального?
Изображения
Тип файла: jpg screenshoot_03.03.2010_20.41.18.jpg (5.0 Кб, 207 просмотров)
Тип файла: jpg screenshoot_03.03.2010_20.41.35.jpg (9.1 Кб, 176 просмотров)
Belfigor вне форума Ответить с цитированием
Старый 03.03.2010, 19:08   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
type
   TForm1 = class(TForm)
     ListView1: TListView;
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
   private
     FListViewWndProc: TWndMethod;
     procedure ListViewWndProc(var Msg: TMessage);
   public
    { Private declarations }
     FShowHoriz: Boolean;
     FShowVert: Boolean;
   end;

    var
   Form1: TForm1;

 implementation

 {$R *.dfm}

 procedure TForm1.ListViewWndProc(var Msg: TMessage);
 begin
   ShowScrollBar(ListView1.Handle, SB_HORZ, FShowHoriz);
   ShowScrollBar(ListView1.Handle, SB_VERT, FShowVert);
   FListViewWndProc(Msg); // process message 
end;

 procedure TForm1.FormCreate(Sender: TObject);
 begin
   FShowHoriz := True; // показать горизонтальный скролбар 
  FShowVert := False; // hide vert scrollbar 
  FListViewWndProc := ListView1.WindowProc; 
  ListView1.WindowProc := ListViewWndProc; 
end;

 procedure TForm1.FormDestroy(Sender: TObject);
 begin
   ListView1.WindowProc := FListViewWndProc; 
  FListViewWndProc := nil;
 end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.03.2010, 19:11   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как убрать из ListView горизонтальный скроллбар
Код:
type
TNoHScrollListview = Class( TListview )
private
Procedure WMNCCalcSize( Var msg: TMessage ); message WM_NCCALCSIZE;
end;



procedure TNoHScrollListview.WMNCCalcSize(var msg: TMessage);
var
style: Integer;
begin
style := getWindowLong( handle, GWL_STYLE );
If (style and WS_HSCROLL) <> 0 Then
SetWindowLong( handle, GWL_STYLE, style and not WS_HSCROLL );
inherited;
end;
mihali4 вне форума Ответить с цитированием
Старый 03.03.2010, 19:39   #4
Belfigor
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 12
По умолчанию

Спасибо, буду экспериментировать
Belfigor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
ListView как убрать "ползунок" в columns dr.Chas Компоненты Delphi 5 15.11.2009 00:30
Скролл в Word viter.alex Microsoft Office Word 3 27.01.2009 23:41
ListView aesoem Общие вопросы Delphi 4 05.07.2008 15:55
ListView Старовъръ Компоненты Delphi 8 02.07.2008 19:08