Глюки VScrollPos

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Всем добрый день.

Вот столкнулся с такой фигней. В С55 появилась опция простмотра файла в листбоксе с опцией FileLoaded. Под С4 такого не было, а понадобилось. Ну рихтанул классы и шаблоны. Появилось все и в С4. Сделал тестовое приложение. Все работает. Вот только скроллинг глючит. Что имеется ввиду. Идем по очереди стрелкой вниз. Где-то в районе 4-5 элемента списка бегунок прокрутки улетает в 100%, хотя еще и половина списка не пройдена.
Думал, проглючил я. Проверил под С55, в родной среде - эффект тот же. Начал ковырять проперть VScrollPos. Выяснил что у него пароноидальное поведение. У него max не 100 - как написано в доке, а число от 13 до 16 в зависимости от размера очереди. Т.е. если присваивается:

Pos = 20
?List{PROP:VScrollPos} = Pos
Message(?List{PROP:VScrollPos}) дает 13. Это как?????

С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Аналогично ведет себя и PROP:HScrollPos.
В просмотрщике текстовых отчетов я поправил малость код Вадима и теперь стрелками влево-вправо можно прокручивать отчет не только на десять позиций.
Главное - не доверять значениям, которые возвращают эти пропы. Просто - завести свой счетчик и работать именно с ним и нужные значения "вбивать" в эти проперти. Все работает нормально.

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru

(Добавление)

100 - это когда ты ставишь IMM и берешь все управление прокруткой на себя (как при постраничной загрузке). При файловой загрузке СНИМАЕШЬ IMM и все работает само собой, и ползунок показывает положение в очереди и ес-но нормирован на размер очереди.

WBR, Nick Tsigouro. MailTo:Nick@arsis.ru

А там IMM must be. И прокруткой управляю я, о чем и идет речь. Только глючит оно.

С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com

Не будет оно работать как Вы хотите.
На коротких очередях будет длинная ашипка.

Vasiliev B <soft2@mail.redcom.ru>
Написал: ClaList(2)
Гость

Сообщение Гость »

Привет, Всем!

Глюка действительно такая есть (кроме C5, там вроде нет). Я вышел из положения поставив в начало рутины, которая у меня устанавливает PROP:VScrollPos такой код:

Код: Выделить всё

SetScrollRange(?MyList{PROP:Handle}, SB_VERT, 0, 100, TRUE)

где

SB_VERT                      EQUATE(1)

  MAP
     MODULE('Windows API')
       SetScrollRange        ( HWND hWnd,                  ! handle to
window with scroll bar
                               SIGNED nBar,                ! scroll bar flag
                               SIGNED nMinPos,             ! minimum
scrolling position
                               SIGNED nMaxPos,             ! maximum
scrolling position
                               BOOL bRedraw                ! redraw flag
                             ),BOOL,PROC,PASCAL
     END
  END ! MAP
Удачи!
__________________________________
Владимир Якимченко (ICQ: 16993194)
Написал: ClaList(2)
Ответить