Текущий архив: 2009.02.01;
Скачать: CL | DM;
Вниз
Прокрутка в TListBox Найти похожие ветки
← →
CodeMaster © (2008-12-18 10:23) [0]Здраствуйте Мастера, опять у меня возникает вопрос со скроллингом компонента TListBox, проблема заключается в том что Лист не прокручивается хотя всё верно, помогите мне найти ошибку, буду благодарен. Заранее Спасибо!
var
ScrollInfo: TScrollInfo;
begin
with Scrollinfo do
begin
cbsize := SizeOf(ScrollInfo);
fmask := SIF_ALL;
GetScrollInfo(Plist.Handle, SB_VERT, ScrollInfo);
fmask := SIF_ALL;
ScrollInfo.nPos:= <Позиция скроллинга>;
SetScrollInfo(Plist.Handle, SB_VERT, ScrollInfo,True);
end;
Почему не происходит скроллинга? Хотя данные говорят другое, вот пример:
var
ScrollInfo: TScrollInfo;
i1,i2: Integer;
begin
with Scrollinfo do
begin
cbsize := SizeOf(ScrollInfo);
fmask := SIF_ALL;
GetScrollInfo(Plist.Handle, SB_VERT, ScrollInfo);
fmask := SIF_ALL;
ScrollInfo.nPos:= <Позиция скроллинга>;
i1:= ScrollInfo.nPos;
SetScrollInfo(Plist.Handle, SB_VERT, ScrollInfo,True);
i2:= ScrollInfo.nPos;
Application.Title:= IntToStr(i1) + ":" + IntToStr(i2);
//Переменные i1,i2 Всегда идентичны.. Но почему Лист не прокручивается?
end;
← →
KilkennyCat © (2008-12-18 10:45) [1]А разве SetScrollInfo должна прокручивать? Я думаю, это лишь задание параметров скроллбара, а крутить надо мессаджем (листбокс.нandle, wm_vscroll, sb_linedown (up), 0)
← →
CodeMaster © (2008-12-18 10:59) [2]Да но ведь SB_LINEDOWN Опустит в самый конец, или SB_LINEUP подымет в самый верх списка. Есть ли способ чтобы можно было задать позицию?
← →
CodeMaster © (2008-12-18 11:00) [3]
> CodeMaster © (18.12.08 10:59) [2]
>
> Да но ведь SB_LINEDOWN Опустит в самый конец, или SB_LINEUP
> подымет в самый верх списка. Есть ли способ чтобы можно
> было задать позицию?
Это только в циклическом случае, У МЕНЯ как раз такой
← →
CodeMaster © (2008-12-18 11:33) [4]Всё я нашёл лучший выход в этой ситуации, всем кто пытался помочь спасибо!
if ScrollInfo.nPos >= 0 then
if ScrollInfo.nPos <= ScrollInfo.nMax then
if oldScrollPos <> ScrollInfo.nPos then
if OldScrollPos > ScrollInfo.nPos then
for i:= 1 To OldScrollPos - ScrollInfo.nPos do
Sendmessage(POGiPlayList.Plist.Handle, wm_vscroll, sb_lineup, 0)
else
for i:= 1 To ScrollInfo.nPos - OldScrollPos do
Sendmessage(POGiPlayList.Plist.Handle, wm_vscroll, SB_LINEDOWN, 0);
← →
Leonid Troyanovsky © (2008-12-18 23:26) [5]
> CodeMaster © (18.12.08 11:33) [4]
> Всё я нашёл лучший выход в этой ситуации,
О, ё.
--
Regards, LVT.
Страницы: 1 вся ветка
Текущий архив: 2009.02.01;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.005 c