Implement in Delphi 10.4 or compatible, a custom visual control called TPTZColorBar. Please see the attached screenshot as it could look like in an application.
The color bar is used to hold between 0 and 10 elements or blocks. Each block has its own color, border color, focus color and focus border color. In a normal state, each block is drawn using its defined color and border color. If the mouse cursor enters a block's area, its color and border color will change to the focus color and focus border color. Each block must also hold a tag integer value and support onClick event so we can know which block user has clicked. Do notice that the drawing of the blocks must be identical to that of the screenshot, i.e. anti aliased and smooth.
The color bar needs to work only in a horizontal mode (i.e. no need to have a vertical support). Naturally, the control must work smoothly, flicker free and support any height of the control but normally it will be used as the height similar to that of the screenshot. Do notice the control has rounded corners. You can assume the control is only used over a canvas that has solid color background. I.e., Please implement the round corners simply by painting a solid color as the background color and then draw over it. No need for transparency. Hence, the control must have a defined property of background color and bar color (i.e. the empty part of the bar, without any blocks on it, light gray color by default).
It must be possible to create and resize the blocks in runtime only. No need for any design-time edit functionality. In design-time, the TPTZColorBar can simply draw empty.
As a part of the project, please include a sample project and its compiled version, that shows a form with the TPTZColorBar visible the same way as in the included screenshot.
The solution cannot be based to FML or any third party controls or component packs. You can use any third party code, if it is BSD style licensed and you include everything with your work.
2 freelances font une offre moyenne de 85 $ pour ce travail
Hello I am de Delphi develover for about 10 years and creating components, using sql. Therefore I guess I can help you in your project I have created a sample, but I don't know how to attach it