Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

мерцание скроллбаров

268
26 июля 2007 года
Михаил
587 / / 25.06.2005
используются системные скроллбары, при установке параметров SetScrollInfo происходит мерцание скроллбара (он в принципе не виден), установка параметра fRedraw в false не помогает. Как от этого избавиться?
268
27 июля 2007 года
Михаил
587 / / 25.06.2005
может кому интересно, я заснял мерцание :) 136 кб. На самом деле это происходит гораздо быстрее чем на видео http://depositfiles.com/files/1326279

Код:
procedure TDrawMachine.UpdateScrollBarState;
var si:TScrollInfo;
    sv:boolean;
begin
  si.cbSize:=sizeof(TScrollInfo);
  si.fMask:=SIF_RANGE or SIF_PAGE;
  si.nMin:=-ImageBorderWidth;
  if HandleAllocated and ImageAllocated then
    begin
      //SB_HORZ
      sv:=(not IsImageFitVisibleAreaWidth)and((ssBoth=ScrollStyle)or(ssHorizontal=ScrollStyle));
      si.nMax:=ImageWidth+ImageBorderWidth-1;
      si.nPage:=ScaledClientWidth;
      ShowScrollBar(Handle,SB_HORZ,sv);
      [COLOR=Red]SetScrollInfo(Handle,SB_HORZ,si,sv);[/COLOR]

      //SB_VERT
      sv:=(not IsImageFitVisibleAreaHeight)and((ssBoth=ScrollStyle)or(ssVertical=ScrollStyle));
      si.nMax:=ImageHeight+ImageBorderWidth-1;
      si.nPage:=ScaledClientHeight;
     [COLOR=Red] SetScrollInfo(Handle,SB_VERT,si,sv);[/COLOR]
      ShowScrollBar(Handle,SB_VERT,sv);
    end;
end;
красным выделены строчки при комментировании которых мерцание пропадает
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог