Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
GASCHE

TScrollBar

Вопрос

При выполнении этой процедуры на XE7 
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
   IF ScrollBar1.Value = 0 THEN BEGIN
      //Trend := True;
      ScrollBar1.Value := 1;
   END ELSE BEGIN
      IF ScrollBar1.Value >= ScrollBar1.Max THEN BEGIN
         ScrollBar1.Value :=  ScrollBar1.Max - 1;
         //Trend := False;
      END;
   END;
end;

кнопочками на TScrollBar или из программы меняя ScrollBar1.Value все нормально, но если кликнуть мышкой в крайние значения, то положение ползунка не изменяется хотя значение ScrollBar1.Value принимает требуемое значение. Как в этом случае синхронизировать положение ползунка со значением ScrollBar1.Value? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

C этим разобрался в отличии от VCL здесь в процедуре, вызываемой по OnChange нельзя менять значение Value  :( 

 

И еще. Если установить, например, SmallChange = 2 то ползунок кнопочками перемещается с дискретностью 2, а вот при перемещении или клике мышкой значение SmallChange не учитывается отсюда Value может принять любое значение не кратное SmallChange.
Если это так задумано, то зачем нужно значение SmallChange и лишняя перерисовка TScrollBar? 
Изменено пользователем GASCHE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

При нажатии на кнопку перемещения TScrollBar на XE10 ползунок перемещается на две позиции, это у меня так, или очередной глюк. ScrollBarTest.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

При нажатии на кнопку перемещения TScrollBar на XE10 ползунок перемещается на две позиции

Проверил FMX. Действительно в Windows изменяется на 2 значения. Даже при ScrollBar1.SmallChange:=1; 

Для Win наверное лучше использовать VCL-ный scrollbar, там  меняется на 1 по умолчанию

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...