Форум: "Основная";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
ВнизКак сделать, чтобы в ListBox не отображались линейки прокрутки Найти похожие ветки
← →
dedelta (2005-06-30 18:56) [0]Как сделать, чтобы в ListBox не отображались линейки прокрутки
← →
Просто Джо © (2005-06-30 19:25) [1]Ну, честно говоря, кроме
ShowScrollBar(
ListBox1.Handle,
SB_BOTH,
False
);
ничего в голову не приходит. Эта функция убирает скролл-бары до следующего их обновления, затем они снова появятся. Попробуй повесить этот код на несколько событий TListBox"а - и выбери оптимальный. Криво, но что поделать. Или все-так и придется писать своего наследника от TListBox"a и переопределить поведение в нескольких методах.
← →
begin...end © (2005-06-30 20:51) [2]Перекрыть CreateParams, в котором сбросить стили WS_HSCROLL и WS_VSCROLL, и радоваться жизни.
← →
dedelta (2005-07-03 16:04) [3]А поподробнее можно. Интересует, что значит перекрыть.
← →
begin...end © (2005-07-03 19:51) [4]> dedelta (03.07.05 16:04) [3]
Создать потомка и заменить реализацию метода CreateParams своей.type
TMyListBox = class(TCustomListBox)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
{ TMyListBox }
procedure TMyListBox.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style and not (WS_HSCROLL or WS_VSCROLL)
end
После этого можно либо динамически создавать экземпляры этого класса, либо зарегистрировать этот компонент в палитре.
Пример с динамическим созданием, позволяющий увидеть, что полосы прокрутки не появляются:procedure TForm1.FormCreate(Sender: TObject);
var
I: Char;
begin
with TMyListBox.Create(Self) do
begin
Parent := Self;
for I := "A" to "Z" do
Items.Add(StringOfChar(I, 50))
end;
end.
← →
dedelta © (2005-07-06 10:05) [5]Спасибо. Всё ОК.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c