Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.026 c
2-1229506635
abhtr
2008-12-17 12:37
2009.02.01
Проблема с rchForReport: TRichEdit


2-1229844333
Krasava
2008-12-21 10:25
2009.02.01
А как мне вызвать метод?


2-1229513471
Leks
2008-12-17 14:31
2009.02.01
SpeedButton со скругленными углами


4-1205143556
dmitry_12_08_74
2008-03-10 13:05
2009.02.01
Как загрузить цветной или полупрозрачный курсор из файла ресурсов


2-1229811012
kritika
2008-12-21 01:10
2009.02.01
очереди, стеки, деревья