Alexandria 11.3 Update
What's new?
1. Added a new component TEsControlListCheckBox (Similar to TCheckBox but can be used in TControlList).
TControlList allows you to create great responsive interfaces using the TGraphicControl components to display content.
Sometimes you need something interactive like TControlListButton. What about a CheckBox for example for "done" in a to-do list based on a TControlList?
A new interactive component TEsControlListCheckBox has been added to the library.
This component does not have a window handle and is practically "free" for the application.
This component may be used as a clickable CheckBox and as a simple bool indicator in the CheckBox style (ReadOnly property).
Component support bindings when used with TControlList.
(See Samples\TEsControlListCheckBoxDemo\TEsControlListCheckBoxDemo.dpr)
2. Added "ES.BitmapPixels.pas" with TBitmapData to easy and fast access to TBitmap pixels.
A common question among VCL developers is "how do I access TBitMap pixels?"
Usually two solutions are suggested either using Canvas.Pixels[], or using Bitmap.Scanline[].
Accessing through Canvas.Pixels[] is extremely slow and frustrating, while using Bitmap.Scanline[] with all those PixelFormat's and Pointer's can be overkill for many developers.
A new module "ES.BitmapPixels.pas" has been added to the library. This module allowing access to TBitmap pixels with the speed of Bitmap.Scanline[] and the simplicity of Canvas.Pixels[].
Access is possible in two modes: RGB and RGBA, no need to think about the pixel format, all the necessary changes will be made automatically.
Here is an example that inverts pixels:
procedure InvertColors(const Bitmap: TBitmap);
var
Data: TBitmapData;
X, Y: Integer;
Pixel: TPixelRec;
begin
Data.Map(Bitmap, TAccessMode.ReadWrite, False);// RGB access
try
for Y := 0 to Data.Height - 1 do
begin
for X := 0 to Data.Width - 1 do
begin
Pixel := Data.GetPixel(X, Y);
Pixel.R := 255 - Pixel.R;
Pixel.G := 255 - Pixel.G;
Pixel.B := 255 - Pixel.B;
Data.SetPixel(X, Y, Pixel);
end;
end;
finally
Data.Unmap();
end;
end;
(See Samples\TBitmapPixelsDemo\TBitmapPixelsDemo.dpr)
3. Improved support for Delphi 11 Alexandria.
Improved styles support.