Главная страница
    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.45 MB
Время: 0.005 c
2-1229500831
Дмитрий
2008-12-17 11:00
2009.02.01
Hide Form Icon


15-1228738263
Хитрий Лис
2008-12-08 15:11
2009.02.01
Подскажите по лицензированию


2-1229413142
Мурзик
2008-12-16 10:39
2009.02.01
Ограничение на ввод


2-1229784921
buzb
2008-12-20 17:55
2009.02.01
Как узнать папку, в которой находиться наша программа.


15-1228477841
Артур Пирожков
2008-12-05 14:50
2009.02.01
Если нет Офиса, а нужно открыть Аксесовский файл?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский