OK,
Did a first cut of the enhanced BGRA knob.
Added a KnobType to define the following
ktAngle - Returns number in a default range of 0-360
ktPercent - Retuns number in a of 0-100
ktRange - Returns numbers in any range as specified 0 to 100, 0 to 360, -5 to 10, -100 to 100, etc. May remove ktAngle and ktPercent as this does the same
ktSector - Changes knob into a 'sectored' type of switch. You can specify the number of sectors from 1 to 255
As mentioned ktAngle and ktPercent may be really useless since ktRange does the same, but allows for some presets I guess (Feedback needed)
NOTE : The range of the knob that is returned in the Value property is different from the StartAngle and EndAngle. So no matter what the StartAngle and StopAngle are set at, the range set by MinValue and MaxValue will always be returned.
An example might be a knob that starts at 0 and ends at 180 degrees, but can return a range of -100 to 0
MinValue/MaxValue Range is a returned value mapped across the span of the knob
StartAngle EndAngle are in degrees of how the knob will be set up.
Added a bunch of missing events, the original only had onValueChange.
Added Mouse wheel support for all knob types with an option to allow the mouse wheel to go past the ends of scale (wrap)
Added a 'Slow Snap' feature that will keep the position of the knob more stable when moving the mouse near endpoints and wrapping around
Also with some simple tricks the knob can be made to be continuous spinner wheel, but you will have to figure out how to track the way you need. Possibly may need to expose a new event for this, but not sure. You can try this with a StartAngle = 0 and EndAngle = 359.999
The attached zip has the sample project that can test a lot of the features, pretty self explanatory, look at the code if you need to know!
This is just the first (what I would say) working cut where things seem to work well, or so I think
To do build the project, it's a bit of a hack since I don't have the files set up correctly in github, so for now, unzip the file into a clean directory where you can build Lazarus projects, look in the folder for the BGRAKnob directory. You will need to rename you existing BGRAKnob.pas in the components directory (where ever that may be installed) and copy the BGRAKnob.pas into that directory.
Compile the BGRA Controls via the package manager, and then install (will rebuild Lazarus).
Testing was done with BGRA Controls v9.0 on Win11. Will test on Linux shortly
At this point bring up the project and compile. It might work...
A little more clean and testing is in order but getting close.
Sandy