asScrollTrackBar - Forum

Forum Navigation
You need to log in to create posts and topics.

asScrollTrackBar

A plugin for creating a scrollbar. Can be used as a TrackBar . The archive contains the plugin, a file for translating strings, plugin source codes, and a VisualNeo demo project.

 

asScrollTrackBar

Regards

as3856

The plugin is finished and available for download.

 

Uploaded files:
  • You need to login to have access to uploads.
luishp, Vadim and 6 other users have reacted to this post.
luishpVadimdglojnaralangonzalez91danitoDarbdenralemoiretz
  1. Как создать системную полосу прокрутки без всяких украшательств?
  2. Кнопки со стрелками отдельно нужно делать? В зависимости от настроек системы, расширения, масштабирования и т.д. ... На каждой системе они разного размера.
  3. Когда мышь на прокручиваемой странице\объекте находится, нужно подключать отдельный плагин монитора мыши?
  4. Как изменить размер бегунка? Обрати внимание, по мере заполнения контентом, в системной полосе бегунок меняет свои размеры. Чем больше содержимого, тем меньше становится бегунок, и наоборот, чем меньше содержимое, тем больше бегунок.

    Это первое на что обратил внимание с наскока. Возможно что то упускаю, но быстро пробежав не нашел этих возможностей.
    Только без обид. Если критика, замечания не нравятся, я умою руки и буду молчать.

    ___________________________________________________________________

    For those who don't know Russian.
    How to create a system scrollbar without any embellishments?
    Do I need to make arrow buttons separately? Depending on the system settings, expansion, scaling, etc. ... They are different sizes on each system.
    When the mouse is on a scrolling page/object, do I need to connect a separate mouse monitor plugin?

    How to change the size of the slider? Note that as the content fills the system bar, the slider changes its size. The more content, the smaller the slider becomes, and vice versa, the smaller the content, the larger the slider.

    This is the first thing I noticed right away. Maybe I'm missing something, but after quickly running through it, I didn't find these options.

Translator

 

can i have an example with this plugin linked to the container example?

@mishem

1)  я не пытался написать полностью скроллбар - когда начинал писать - всего лишь хотел заменить трекбар. Внешне он некрасив - хотелось что то посимпатичнее.

2) - кнопки со стрелками можно и не делать -при клике по полосе-в зависимости с какой стороны кликнеш- выполняются разные подпрограммы.

- но если есть желание - можно сделать средствами необука .

3) прокрутка мышки работает только если мышь находится на созданном объекте. Объектов может быть много - даже само окно необука объект и фокус я ловить не стал.

4) размер бегунка можно изменять, но обрати внимание - тут нет объекта для контента.- поэтому  менять только вручную.( и смотри п.1 )

По остальному - после того как написал плагин  и попробовал контейнердвигать - понял  что нехватает команды  которая и будет это делать ( привык уже в делфи писать ) поэтому плагин удалил для дописания

Ну фактически то написал её - выложу уж позже. Поторопился - непроверил. каюсь.

И ещё раз повторюсь - я не пытался написать скроллбар - это просто полоса с бегунком для замены трекбара.--- и всё.

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

 

 

 

Vadim and Sinesi Giuseppe have reacted to this post.
VadimSinesi Giuseppe

@as3856
Изменение размера бегунка нашел.

На что еще внимание обратил, шаг прокрутки. Он идет на количество строк, если мне память не изменяет. Т.е. к примеру введи конечное значение 5000, и шаг получается 168 пикселей. При таком шаге не возможно будет к примеру текст читать. По моему мы с frolandr обсуждали этот момент в теме Плагин faMouseHook.

По поводу кнопок, суть не в том, можно или нельзя их делать, суть в том что нужен обычный системный скрол. Я тебя услышал про обычную полосу, это так, для заметок.

Зря удалил, пусть был бы. Кто то еще может что то подскажет. На этапе проектирования всех моментов не учесть.

По поводу замены трекбара... Кто то по моему уже делал замену. Если замену, то нужно насечки(деления) добавлять. Шаг по этим насечкам делать. Вид бегунка менять, типа стрелочка, кружочек и  т.д. Ну типа как баланс громкости к примеру.

Имхо, все эти градиенты здесь ни к чему (но может этой мой вкус такой, а кто то пищать от этого будет).

Короче, ждем полноценный ScrollBar. Лично мне и штатного хватает, за исключением когда насечки нужны. :(

Excelente genio!!

@as3856
По поводу шага прокрутки мыши...
Получить значение можно из реестра
HKEY_CURRENT_USER\Control Panel\Desktop\WheelScrollLines
Если -1, прокручивать за раз на размер экрана.
От 1-n, прокручивать на указанное колличество строк.

Так что у меня в примерах в соседней теме будет при -1 выдавать не правильные параметры. Тоже надо учитывать. Я не знал про -1.

HKEY_CURRENT_USER\Control Panel\Desktop\WheelScrollChars

количество горизонтальных символов для прокрутки за раз.

0 - по моему указывает на то, что прокрутка отключена.

@mishem всё намного проще и не надо углубляться в дебри. Существует стандартная процедура (например формы) при которой происходит движение мышки при прокрутке колёсика.

FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);  - вот эта процедура.

WheelDelta: Integer - а это как раз шаг прокрутки с которым  можно делать что угодно -напрмер вот так    WheelDelta div 20

(кстати не стал прописывать команду для указания делителя - хотя может и зря.)

Осталось перехватить эту процедуру и применить её к другим объектам ( например SpeedButton применяемый у меня в плагине не имеет такой процедуры, и вообще это не TControl - и к нему невозможно применить API  функции установки фокуса. Поэтому в плаге всё написано на перехвате. Я перехватываю процедуру колёсика  у формы вместе с фокусом и передаю на SpeedButton. В общем как то так

@as3856
Может интересно будет?
https://learn.microsoft.com/ru-ru/windows/win32/controls/about-scroll-bars

@mishem - среднеинтересно  - API

В делфи немного по другому- к тому же зачем придумывать велосипед если есть готовые решения - компонент ScrollBar

 

 

@sinesi-giuseppe    Download the updated plugin. There is a demo project for you in the archive.

regards

as3856

luishp, Vadim and 2 other users have reacted to this post.
luishpVadimDarbdenralSinesi Giuseppe