Fill class
The colour or gradient that paints a region — background of a control, body of a border, fill of a grid line, foreground of text. A Fill has two parts: a Pattern that picks the gradient direction (or tbPatternNone for transparent), and a ColorPoints collection of one or more colour stops that supply the actual colours.
A single solid colour is just a one-stop fill: call ColorPoints.SetSolidColor with a Long colour, or SetSimplePattern on the parent Fill for a two-colour gradient.
btnGo.NormalState.BackgroundFill.ColorPoints.SetSolidColor vbBlue
btnGo.HoverState.BackgroundFill.SetSimplePattern vbBlue, vbWhite, _
Pattern:=tbGradientNorthToSouth
Each stop carries a colour and a position, and both are editable in place through Values after the pattern has been set. Moving the stops off 0 and 100 holds each colour longer and compresses the blend between them:
With btnGo.NormalState.BackgroundFill
.SetSimplePattern &HF3E58F, &H014C99, Pattern:=tbGradientNorthToSouth
.ColorPoints.Values(0).PositionPercent = 20
.ColorPoints.Values(1).PositionPercent = 80
End With
For three or more colour stops, build FillColorPoint instances and pass them to SetColorPoints. The stops accept fully-opaque ARGB literals (&HFF alpha in the high byte) — see ColorRGBA for the encoding:
With btnGo.NormalState.BackgroundFill
.Pattern = tbGradientNorthToSouth
.ColorPoints.SetColorPoints _
New CustomControlsPackage.FillColorPoint(&HFFF3E58F, 0), _
New CustomControlsPackage.FillColorPoint(&HFF99CCFF, 50), _
New CustomControlsPackage.FillColorPoint(&HFF014C99, 100)
End With
Important
FillColorPoint is a Private component of the package, so naming it takes the CustomControlsPackage library symbol prefixed with an asterisk in Project Settings — the control package, not the CustomControls DESIGNER library listed beside it — plus the package qualifier used above. See Exposing a library’s private symbols for the setting and where to find it.
Note also that SetColorPoints takes a ParamArray of Variant, so a call passing anything other than a FillColorPoint compiles and then fails at run time.
Properties
ColorPoints
The FillColorPoints collection holding the gradient stops. Always present and pre-allocated; assigning new stops is done by calling methods on this object rather than replacing the collection.
Pattern
How the colours in ColorPoints are mapped across the region. A member of FillPattern. Default: tbGradientNorthToSouth. Use tbPatternNone to make the Fill transparent.
Methods
SetSimplePattern
Replaces the colour stops with a two-stop gradient between two solid colours, optionally adjusting the Granularity and Pattern at the same time. The colours are given as ordinary Long values (the vb… colour constants or a hex literal); the opaque alpha mask is OR-ed in automatically.
Syntax: object.SetSimplePattern Value1RGB, Value2RGB [, Granularity [, Pattern ] ]
- Value1RGB
- required A Long RGB colour for the first gradient stop (position 0).
- Value2RGB
- required A Long RGB colour for the second gradient stop (position 100).
- Granularity
- optional The colour-table size assigned to Granularity. Default: 100.
- Pattern
- optional A member of FillPattern. Default: tbGradientNorthToSouth.
SetSimplePatternRGBA
Same as SetSimplePattern but accepts raw 32-bit ColorRGBA values with their own alpha channels rather than three-byte RGB colours.
Syntax: object.SetSimplePatternRGBA Value1RGBA, Value2RGBA [, Granularity [, Pattern ] ]
- Value1RGBA
- required A ColorRGBA (ABGR) value for the first gradient stop.
- Value2RGBA
- required A ColorRGBA (ABGR) value for the second gradient stop.
- Granularity
- optional The colour-table size assigned to Granularity. Default: 100.
- Pattern
- optional A member of FillPattern. Default: tbGradientNorthToSouth.
Events
OnChanged
Raised whenever Pattern is assigned or the ColorPoints collection raises its own OnChanged.
FillColorPoints class
The collection of FillColorPoint stops that define a Fill’s colour gradient. Accessed as Fill.ColorPoints. Internally an array of FillColorPoint plus a Granularity integer.
Granularity
The size of the generated colour table that interpolates the stops. Higher values give smoother gradients; a value of 2 produces a hard transition between just two colours regardless of how many stops the collection holds. Long. Default: 100.
Values
The array of FillColorPoint gradient stops. Read-write, but in practice populated through the SetSolidColor, SetSolidColorRGBA, SetColorPoints, or SetColorPointsArray methods rather than by assigning the array directly — assigning it needs a FillColorPoint(), which the project can only declare when the package is imported with an asterisk.
SetSolidColor
Replaces the stop array with a single fully-opaque stop. Takes a three-byte Long colour and OR-s in the opaque alpha mask.
Syntax: object.SetSolidColor ValueRGB
- ValueRGB
- required A Long RGB colour.
SetSolidColorRGBA
Replaces the stop array with a single stop whose alpha is taken from the supplied value rather than forced opaque.
Syntax: object.SetSolidColorRGBA ValueRGBA
- ValueRGBA
- required A ColorRGBA (ABGR) value.
SetColorPoints
Replaces the stop array with the supplied FillColorPoint values, in order.
Syntax: object.SetColorPoints ColorPoint1 [, ColorPoint2, … ]
- ColorPoint1, ColorPoint2, …
- required One or more FillColorPoint objects, passed as Variants through a
ParamArray.
SetColorPointsArray
Replaces the stop array with the contents of an existing array of FillColorPoint.
Syntax: object.SetColorPointsArray ColorPoints ( )
- ColorPoints
- required An array of FillColorPoint. Uninitialised or empty arrays leave the collection unchanged.
OnChanged
Raised when the array of stops is reassigned or when any single stop raises its own OnChanged, or when Granularity is assigned. The parent Fill listens for this event and re-raises its own.
FillColorPoint class
A single gradient stop — a colour together with the position (0–100 %) at which the colour applies along the gradient. Elements of the FillColorPoints.Values array.
Color
The stop’s colour as a 32-bit ABGR value. ColorRGBA.
PositionPercent
The stop’s position along the gradient, as a percentage from 0 to 100. Double. A two-stop gradient typically has stops at 0 and 100; intermediate stops at 25 / 50 / 75 produce smooth multi-colour transitions.
New
Constructs a FillColorPoint. The parameterless overload sets neither field; the two-argument overload sets both.
Syntax: New CustomControlsPackage.FillColorPoint [ ( ColorRGBA, PositionPercent ) ]
The package qualifier is required, and so is importing the reference with an asterisk — see the note at the top of this page.
- ColorRGBA
- optional A ColorRGBA value to assign to Color.
- PositionPercent
- optional A Double to assign to PositionPercent.
OnChanged
Raised when either Color or PositionPercent is assigned. The parent FillColorPoints listens for this event.