Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];

Вниз

Прокрутка в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
2-1229518836
abhtr
2008-12-17 16:00
2009.02.01
Как определить кодировку строчки


3-1214040475
Tab
2008-06-21 13:27
2009.02.01
Функция Substring s FireBird


6-1197906837
AllTrueIst
2007-12-17 18:53
2009.02.01
Локальный прокси(перехват всех запросов программой)


1-1207547683
scat
2008-04-07 09:54
2009.02.01
Создание формы по имени класса формы


11-1196724955
Koss
2007-12-04 02:35
2009.02.01
при запуске открывает Form2 ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский