- Extended hexadecimal and Base64 helpers in
Alcinoe.StringUtils:- added
ALTryHexToInt32/UInt32/Int64/UInt64andALHexToInt32/UInt32/Int64/UInt64 - added optional lowercase output support to
ALIntToHexA/WandALBinToHexA/W - added URL-safe Base64 helpers for strings and bytes, plus MIME byte-decode overloads
- added
- Updated JSON/BSON formatting in
Alcinoe.JSONDoc:- added
TALJSONNodeListA/W.Extract(Name) - made
ALJsonEncode...A/Winterchange-format parameters default to Mongo Extended JSON - changed ObjectID and BSON binary subtype JSON output to use lowercase hexadecimal
- added
- Updated hash, HMAC, and OAuth helpers in
Alcinoe.Cipher:- hash and HMAC string helpers now emit lowercase hexadecimal
- renamed
ALVerifyRSA256Signature/ALRSA256SigntoALVerifyRS256Signature/ALRS256Sign - changed RS256 signing and verification to use
TBytesinputs/results - added
ALTryGetGenericWinCredentialandALGetGenericWinCredential
- Renamed
TALErrorReportingtoTALErrorReporterand updated demos/references accordingly - Improved Firebase Cloud Messaging on iOS:
- added guarded
ALFIRAppConfigure - disabled Firebase app delegate swizzling in the notification demo plist
- added guarded
- Updated
TALNotificationService:- added
RegisterForRemoteNotifications - changed
TPushProvidervalues fromFCM, APNs, PushKittoFCM, APNS, HMS
- added
- Improved FMX layout/platform helpers:
- added semantic-version packing helpers and
ALGetSafeAreaInsets - tracks the last requested Android system bar colors so restore/capture is stable in edge-to-edge modes
- updated sheets to account for safe-area insets and platform keyboard height differences
- fixed HTML decoding for ellipsis text in break-text rendering
- added semantic-version packing helpers and
- improved edit and memo placeholder vertical positioning/line-height handling
- initialized dynamic list box touch handling only once the main content becomes visible
- Added Android 13 back-invocation JNI wrappers in
Alcinoe.Androidapi.Windowand exposedJALActivity.getOnBackInvokedDispatcher - Updated
AndroidMergerdeploy-file cleanup to respect the selected deployment configurations
- Refactored hashing and HMAC helpers in
Alcinoe.Cipher:- replaced
ALStringHashMD5,ALStringHashSHA1, andALStringHashSHA2with theALHashMD5AsBytes/AsDigest/AsStringA/AsStringW,ALHashSHA1AsBytes/AsDigest/AsStringA/AsStringW, andALHashSHA2AsBytes/AsStringA/AsStringWfamilies - replaced
ALCalcHMACMD5,ALCalcHMACSHA1, andALCalcHMACSHA2with...AsBytesand...AsStringAoverloads
- replaced
- Extended JSON/BSON support in
Alcinoe.JSONDoc:- added
TALJSONInterchangeFormat - added
soStandardJsonandsoMongoExtendedJsonsave options - added function overloads for
SaveToJSONStringandSaveToBSONBytes - removed
SaveToBSONString,LoadFromBSONString,ParseBSONString, andCreateFromBSONStringin favor ofTBytes-based BSON APIs - replaced
ALJsonEncode...WithNodeSubTypeHelper*helpers with format-awareALJsonEncode*overloads
- added
- Updated binary/string conversion helpers in
Alcinoe.StringUtils:- renamed
ALConvertStringToBytestoALBorrowStringAsBytes - renamed
ALRevertBytesToStringtoALRestoreBytesToString - added
ALStringToBytesandALBytesToString - changed
ALHexToBinto returnTBytes - removed
ALTryBinToHex
- renamed
- Added AnsiString overloads for
ALLogand addedALSameBytestoAlcinoe.Common - Moved
TALImageWrapModefromAlcinoe.FMX.CommontoAlcinoe.Common - Added MongoDB log forwarding to
ALLogand updated the C header wrapper generator to emit the MongoDB log handler automatically - Fixed Android native view redraw after dialogs on Android 16 by forcing
requestLayoutwhen views become visible again
- Renamed
Alcinoe.Mime.ContentTypestoAlcinoe.Mime.Types - Renamed MIME helper functions:
ALGetDefaultMIMEContentTypeFromExttoALGetDefaultMimeTypeFromExtALGetDefaultFileExtFromMimeContentTypetoALGetDefaultFileExtFromMimeType
- Changed
TALStringStreamAto inherit fromTMemoryStreaminstead ofTStream - Added
ALStopCurrentService - Updated
ALInstallService:- default
APreshutdownTimeoutis now180000 - added
AEnableFailureAutoRestart: Boolean = True - configured automatic restart on service failure
- default
- Added success messages to
ALInstallServiceandALUninstallService - Renamed
TALHttpServerA.MaxBodySizetoTALHttpServerA.MaxRequestBodySize - Simplified
TALHttpServerHttpSysworker thread management:- removed
MinWorkerThreadCount - removed
MaxWorkerThreadCount WorkerThreadCountis now directly configurable
- removed
- Added Windows version guards before enabling WinHTTP HTTP/2, HTTP/3, and decompression options
- Optimized parts of
TALJSONNodeA/TALJSONNodeWJSON/BSON parsing and serialization:- reduced internal buffer sizes from
32768to16384 - used
TBufferedFileStreamfor JSON/BSON file saves - streamlined direct stream writes in serialization paths
- reduced internal buffer sizes from
- Updated
TALMongoDBClientso JSON payloads remainAnsiStringand BSON payloads useTBytes - Added
TBytesoverloads forTALMongoDBClient.FindAndModify,InsertOne,InsertMany,UpdateOne,UpdateMany, andReplaceOne
- Changed
TALJSONNodeA.BSONfromAnsiStringtoTBytes. If you still need the BSON payload as a byte-based AnsiString, useTALJSONNodeA.SaveToBSONString - Added
poBinaryAsPtrStreamtoTALJSONParseOption - Added
LoadFromBSONBytesandParseBSONBytestoTALJSONNodeA/TALJSONDocumentA - Added
GetBinaryAsBytes,GetBinaryAsStream,SetBinaryAsBytes,SetBinaryAsStream,GetOwnsBinaryStream, andSetOwnsBinaryStreamtoTALJSONNodeA/TALJSONNodeW - Added
GetChildValueBinaryAsBytes,GetChildValueBinaryAsStream,SetChildValueBinaryAsBytes, andSetChildValueBinaryAsStreamtoTALJSONNodeA/TALJSONNodeW - Changed
TALJSONNodeA/TALJSONNodeW.ParseBSONto useRawBSONBytes: TBytesinstead of string-based BSON buffers - Changed
TALJSONNodeA/TALJSONNodeW.ObjectIDand related getters/setters to useTBytesinstead ofAnsiString/String - Changed binary handling in
TALJSONNodeA/TALJSONNodeWfromBinary: AnsiString/StringtoBinaryAsBytes: TBytesandBinaryAsStream: TStream - Changed
ALJsonEncodeBinaryWithNodeSubTypeHelperA/WandALJsonEncodeObjectIDWithNodeSubTypeHelperA/Wto useTBytes - Changed
ALJSONTryStrToBinaryA/WandALJSONTryStrToObjectIDA/Wto returnTBytes - Removed sorted/duplicate/owner support from
TALJSONNodeListA/TALJSONNodeListW - Removed
MultiThreadPrepare,NextSibling,PreviousSibling,ParentNode, andNodeValuefromTALJSONNodeA/TALJSONNodeW - Removed
SetChildNodesfromTALJSONNodeA/TALJSONNodeW,TALJSONObjectNodeA/TALJSONObjectNodeW, andTALJSONArrayNodeA/TALJSONArrayNodeW - Removed
ALJSONToXMLA - Removed
ALJsonEncodeWithNodeSubTypeHelperA/W - Removed
TAlJSONParseDocumentW - Added
ALConvertStringToBytesandALRevertBytesToStringto convert anAnsiStringtoTByteswithout copying the underlying data.
- Added TALCookedUrlW
- Added ExtractHeaders and ExtractBodyStream to TALHttpRequestA/TALHttpRequestW and TALHttpResponseA/TALHttpResponseW
- Changed
ALAcquireKeepAliveWinHttpClient/ALReleaseKeepAliveWinHttpClientto useAUrl: AnsiStringinstead ofAURI: TUri - Changed
ALAcquireKeepAliveNetHttpClient/ALReleaseKeepAliveNetHttpClientto useAUrl: Stringinstead ofAURI: TUri - Renamed
TALImageWrapMode.FitAndCroptoTALImageWrapMode.Cover - Renamed
TALJSONNodeA/TALJSONNodeW.GetChildNodeValueXXXtoTALJSONNodeA/TALJSONNodeW.GetChildValueXXX - Renamed
ALFindJsonNodeByChildNodeValueXXXtoALFindJsonNodeByChildValueXXX
- Added the default indexed property
Chars[index: Integer]: AnsiChar read GetChars write SetChars;toTALStringBuilderA. - Added the default indexed property
Chars[index: Integer]: Char read GetChars write SetChars;toTALStringBuilderW. - Added the following overloads:
function ALExtractHeaderParamValue(const AHeaderValue: AnsiString; const AParamName: AnsiString): AnsiString; overload;function ALExtractHeaderParamValue(const AHeaderValue: String; const AParamName: String): String; overload;
- Added
TALMimePartHeadersAandTALMultipartDecoderA. - Added
function ALJsonEncodeDateTimeA(const AValue: TDateTime): AnsiString;. - Updated
LoadFromJSONStreamandLoadFromBsonStreamto always reset the stream position to 0 before loading. - Removed
ALExtractHttpCharsetFromContentType(useALExtractHeaderParamValueinstead). - Added Keychain helpers:
function ALKeychainReadBytes(const AService: String; const AAccount: String; out ABytes: TBytes): Boolean;procedure ALKeychainWriteBytes(const AService: String; const AAccount: String; const ABytes: TBytes);
- Added platform helpers:
function ALGetPlatform: String;function ALGetDeviceID: String;
- Fixed Alcinoe issue #492.
- Added
TALHttpRequestHeadersA.ContentBoundaryandTALHttpRequestHeadersW.ContentBoundary. - Made
TALMultipartDecoderAzero-copy: it no longer duplicates the payload bytes. Each part body is exposed as a stream that directly references the underlying buffer ofAPayloadStream.
- Added TAlSChannelTlsClient (native Windows SChannel TLS 1.2 / 1.3 support)
- Added TALWinSocketClient
- Added service management helpers:
ALInstallServiceALUninstallServiceALStartServiceALStopServiceALStartServiceCtrlDispatcher
to fully manage Windows services
- Archived
Alcinoe.Winsock.pas(functions moved toAlcinoe.Net) - Renamed
Alcinoe.Winapi.HttpApitoAlcinoe.Winapi.Http - Rebuilt TALSMTPClient with native TLS 1.2 / TLS 1.3 support
- Added TALMultipartMixedEncoderA and TALMultipartAlternativeEncoderA
- Renamed and rebuilt TALEMailHeadersA to TALMailHeadersA
- Archived
Alcinoe.Sqlite3.ClientandAlcinoe.Sqlite3.Wrapper - Archived
Alcinoe.POP3.Client - Archived
Alcinoe.MemCached.Client
- Align Alcinoe versioning with the Delphi compiler version (e.g. Alcinoe built
with Delphi 13.0 now uses version
13.0.x). - Added
HttpWorker.Cancelmethod. - Added
ToStringhelpers forTRectF,TSizeF,TPointF,TALRectD,TALSizeD, andTALPointD. - Added unified path helper functions:
ALGetAppDataPathWALGetTempPathWALGetTempFilenameWALGetCachePathW
- Added
ResourceStreamproperty toTALAnimatedImage. - Added
PrependItem,AppendItem, andDeleteItemmethods toTALDynamicListBox. - Removed
AddItemfromTALDynamicListBox(usePrependItemorAppendIteminstead). TALEditcontrols are now automatically frozen (using a screenshot for rendering) when partially visible, improving Z-order simulation.TALMemoandTALEditnow useALResolveLineHeightMultiplier, ensuring the same line-height algorithm asTALText.- Updated
TALNotificationServiceto useTMessage-based notifications:TNotificationReceivedMessageTGetTokenMessageTDeleteTokenMessageTTokenRefreshMessageTNotificationPermissionResultMessageThis replaces event-based callbacks (OnNotificationReceived,OnGetToken, etc.) and better aligns with the singleton design.
- Added an internal
ScrollBoxtoTALBottomSheetto support content larger than the maximum visible area. - Added
IsAncestorOfmethod toTControl.
- Added
TALHttpWorkercomponent to support background upload/download operations - Refactoring of HTTP-related types to explicitly separate ANSI (A)
and Unicode (W) variants:
TALHttpServerRequest→TALHttpServerRequestATALHttpServerResponse→TALHttpServerResponseATALHttpServer→TALHttpServerATALHTTPCookie→TALHTTPCookieAandTALHTTPCookieWTALHTTPRequestHeaders→TALHTTPRequestHeadersAandTALHTTPRequestHeadersWTALHTTPResponseHeaders→TALHTTPResponseHeadersAandTALHTTPResponseHeadersWTALHTTPRequest→TALHTTPRequestAandTALHTTPRequestWTALHTTPResponse→TALHTTPResponseAandTALHTTPResponseWAlRfc822DayOfWeekNames→AlRfc822DayOfWeekNamesAandAlRfc822DayOfWeekNamesWALRfc822MonthOfTheYearNames→ALRfc822MonthOfTheYearNamesAandALRfc822MonthOfTheYearNamesW
TALUserPreferencesnow saves its settings in the file{PackageName}.user_preferences
- Renamed TALImage.ApplyExifOrientation to TALImage.ApplyMetadataOrientation for consistency with TALVideoPlayer.ApplyMetadataOrientation.
- Added the complete ImageMagick wrapper, including all functions and types from MagickCore and MagickWand. This wrapper was generated automagically using the ImageMagickWrapperGenerator project.
- Renamed
RotateAccordingToMetadataOrientation→ApplyMetadataOrientation - Renamed
RotateAccordingToExifOrientation→ApplyExifOrientation - Added
GetSingle,GetDouble, andGetDateTimetoTALUserPreferences TALBrushnow includes:ResourceStreamOwnsResourceStreamApplyExifOrientation
TALImage:- Now supports
HTTPHeaderswhen downloading from a URL - Added
OwnsResourceStream
- Now supports
- Renamed
TalExifOrientationInfo→TalExifOrientation - Renamed
AlGetExifOrientationInfo→AlGetExifOrientation - Added
AApplyExifOrientationparameter to:ALCreateSkSurfaceFromResourceALCreateSkImageFromResourceALCreateJBitmapFromResourceALCreateCGContextRefFromResourceALCreateCGImageRefFromResourceALCreateTBitmapFromResourceALCreateBitmapFromResourceALCreateDrawableFromResource
- Updated
TALDialog,TALLoadingOverlay, andTALSheetto emulate overlays over system bars (via system bar color adjustments) - Added
ALGetSystemBarsColorandALSetSystemBarsColor
- TALMediaPicker: New cross-platform component to select images/videos or capture media from the camera.
- TALVideoPlayer: Added
RotateAccordingToMetadataOrientationproperty to automatically adjust playback orientation. - TALImage: Added
ResourceStreamproperty to load images directly from a stream.
- Archived
Alcinoe.CGI.pasAlcinoe.ExprEval.pasAlcinoe.FTP.Client.WinINet.pasAlcinoe.FTP.Client.pasAlcinoe.GSMComm.pasAlcinoe.HTTP.Client.WinINet.pasAlcinoe.IsapiHTTP.pasAlcinoe.LibPhoneNumber.pasAlcinoe.MySql.Client.pasAlcinoe.MySql.Wrapper.pasAlcinoe.NNTP.Client.pasAlcinoe.PhpRunner.pasAlcinoe.SphinxQL.Client.pasAlcinoe.WebSocket.Client.WinHTTP.pasAlcinoe.WebSocket.Client.pasAlcinoe.ZLibEx.pasAlcinoe.ZLibExGZ.pasZLibEx.incZLibEx.pasZLibExApi.pasZLibExGZ.pasAlcinoe.iOSApi.WebRTC.pasAlcinoe.FMX.WebRTC.pasAlcinoe.AndroidApi.WebRTC.pasAlcinoe.QuickSortList.pas
- Renamed
Alcinoe.Mime.pas→Alcinoe.Mime.ContentTypes.pasAlcinoe.MultiPartParser.pas→Alcinoe.Mime.Multipart.pasAlcinoe.WinApi.Common.pas→Alcinoe.WinApi.Windows.pasALHTTPEncode→ALUrlEncodeandALPercentEncodeALHTTPDecode→ALUrlDecodeandALPercentDecodeOnChange→OnChangedinTALStringsAandTALStringsW
- Added
TALStringBuilderA(same asTStringBuilderbut forAnsiString)IncludeTrailingLineBreakInTextproperty toTALStringsAandTALStringsWTALHttpSysServer(an HTTP server built on top of Windows http.sys)
- Removed
ALExtractExpressionAALExtractHeaderFieldsWithQuoteEscaped(useALExtractHeaderFieldsinstead)StripParamQuotesfromALExtractTagParamsATALNewsArticleHeader
- ALRectFitInto and ALRectPlaceInto
CenterAtis now expressed in normalized coordinates[0..1]. - ALDrawMultiLineText
Now decodes all HTML entities, not only>and<. - Mouse Events
ChildrenMouseDown,ChildrenMouseMove,ChildrenMouseUp,ChildrenMouseEnter, andChildrenMouseLeave
are now part of Alcinoe and no longer require patching the Embarcadero source file.
- Removed
AlInt2BaseNandAlBaseN2Int - Added
TALJSONNodeA.CloneandTALJSONNodeW.Clone - Introduced
ALDefaultEstimateLineHeightMultiplier: When theLineHeightMultiplierof a text is0, the function assigned toALDefaultEstimateLineHeightMultiplier(e.g.ALEstimateLineHeightMultiplier) will be used to determine the multiplier
- Set
TALText.AutoSizeto default toTALAutoSizeMode.Both. - If
TALText.MaxWidth = 0, no explicit maximum width is enforced; the control expands to the largest width that still fits fully inside its parent container. - If
TALText.MaxHeight = 0, no explicit maximum height is enforced; the control expands to the largest height that still fits fully inside its parent container. - Added
ShowLoadingIndicatorandHideLoadingIndicatormethods toTALButtonto morph it into a loading indicator. - Renamed resource
alcinoe_loadertoalcinoe_loading_indicator.
- Added
TALSnackbarcomponent for displaying brief, informative messages to users with optional actions. - Renamed
TALDownloadContexttoTALWorkerContextto better reflect its broader purpose in managing background tasks. - Added Secure option to
TALUserPreferencesto enable encrypted storage of sensitive user data.
- Added
TALLoadingOverlaycomponent — a full-screen overlay designed to block user interaction while displaying a Material-inspired loading indicator.
- Added
TALLeftSheet,TALRightSheet,TALTopSheet, andTALBottomSheet. - Updated
TALDialogto support right-to-left layouts (inherits theBiDiModefrom the main application form). - Improved
TALDialogwith smooth upward animation when the virtual keyboard is displayed. - Renamed
ALBrokenImageResourceNamefrom'broken_image'to'alcinoe_broken_image'.
- Added
TALWebBrowser. - Introduced
FreezeNativeViewandUnFreezeNativeViewmethods toTALNativeControl-based controls such asTALEdit,TALMemo, andTALWebBrowser. These methods capture a screenshot of the underlying native view (FNativeView), hide the actual native control, and draw the captured bitmap in its place. This allows simulating z-order (e.g., displaying a popup dialog above the control) without altering the native view hierarchy. - Refactored
Alcinoe.FMX.EditandAlcinoe.FMX.Memounits.
- Renamed the following
TALInterpolationTypeentries to use theMaterial3prefix for improved clarity and alignment with Material Design 3:MaterialExpressiveFastSpatial→Material3ExpressiveFastSpatialMaterialExpressiveDefaultSpatial→Material3ExpressiveDefaultSpatialMaterialExpressiveSlowSpatial→Material3ExpressiveSlowSpatialMaterialExpressiveFastEffects→Material3ExpressiveFastEffectsMaterialExpressiveDefaultEffects→Material3ExpressiveDefaultEffectsMaterialExpressiveSlowEffects→Material3ExpressiveSlowEffectsMaterialStandardFastSpatial→Material3StandardFastSpatialMaterialStandardDefaultSpatial→Material3StandardDefaultSpatialMaterialStandardSlowSpatial→Material3StandardSlowSpatialMaterialStandardFastEffects→Material3StandardFastEffectsMaterialStandardDefaultEffects→Material3StandardDefaultEffectsMaterialStandardSlowEffects→Material3StandardSlowEffectsMaterialEmphasized→Material3EmphasizedMaterialEmphasizedDecelerate→Material3EmphasizedDecelerateMaterialEmphasizedAccelerate→Material3EmphasizedAccelerate
- Added
TALToggleButtoncontrol. - Added Material 3 Expressive button styles.
- Extended
TALInterpolatedAnimationwithBeziersupport viaTALInterpolationTypeandTALInterpolationParams. - Improved text layout to allow character-level breaking when word boundaries are not available.
- Added
ClickSound: TALClickSoundMode (Default, Always, Never)property to allTALControlcomponents. - Changed
StateLayer.XRadiusandYRadiusto default toNaN, allowing them to inherit radius values from their parent control.
- Replaced
AutoSize: BooleanwithAutoSize: TALAutoSizeModeto provide more granular control over sizing behavior.TALAutoSizeMode = (None, Width, Height, All);
- Removed
ReadyBeforeResourcesLoaded. - Replaced
IsReadyToDisplaywithIsReadyToDisplay(const AStrict: Boolean = False). - Renamed
TALAnimation.Interpolation→TALAnimation.InterpolationType. - Renamed
TALAnimation.AnimationType→TALAnimation.InterpolationMode. - Updated
TALStateTransition.Interpolationto useTALAnimation.InterpolationType. - Updated
TALStateTransition.AnimationTypeto useTALAnimation.InterpolationMode. - Refactored
TALAniIndicator; addedMotionMode = (Frame, Rotate). - Removed
Trimmingproperty fromTALBaseTextSettings.
Fill.ImageNoRadiusis nowTrueby default.- Added
ALVibrateDevice. - Reactivated
OnDblClickevent. - Split the unit
Alcinoe.FMX.DynamicListBox.pasinto several smaller units:Alcinoe.FMX.Dynamic.Common.pasAlcinoe.FMX.Dynamic.Controls.pasAlcinoe.FMX.Dynamic.Layouts.pasAlcinoe.FMX.Dynamic.ListBox.pasAlcinoe.FMX.Dynamic.Objects.pasAlcinoe.FMX.Dynamic.PageController.pasAlcinoe.FMX.Dynamic.StdCtrls.pasAlcinoe.FMX.Dynamic.VideoPlayer.pas
- Added
IsPreciseGeoLocationAccessGrantedtoTALGeoLocationSensor.
- Moved
TALFormatSettingsAandTALFormatSettingsWto theAlcinoe.Localizationunit for better organization of locale-specific utilities. - Added
ALIsAlphaStringandALIsAlphaNumerichelper functions for string validation, and renamedALIsDecimaltoALIsNumericfor improved clarity. - Introduced
TALPluralRules, a new class for handling language-specific pluralization rules based on numeric values, enabling proper selection of plural forms in internationalized applications. This supports use cases such as correctly displaying localized strings for quantities (e.g., "1 item" vs "2 items") based on the user's language. - Added
TALDialog.GetButtons, a method that returns the list of buttons currently attached to the dialog.
- Added the following easing types to TALInterpolationType, matching Material Design 3 motion system:
- MaterialExpressiveFastSpatial
- MaterialExpressiveDefaultSpatial
- MaterialExpressiveSlowSpatial
- MaterialExpressiveFastEffects
- MaterialExpressiveDefaultEffects
- MaterialExpressiveSlowEffects
- MaterialStandardFastSpatial
- MaterialStandardDefaultSpatial
- MaterialStandardSlowSpatial
- MaterialStandardFastEffects
- MaterialStandardDefaultEffects
- MaterialStandardSlowEffects
- MaterialEmphasized
- MaterialEmphasizedDecelerate
- MaterialEmphasizedAccelerate
- Removed Overshoot from TALInterpolatedAnimation.
- Added imageTintColor to TALBrush to allow tinting images with a defined color.
- Added support for image tint in HTML via:
<img src="{ResourceName}" color="#FFFFFF or {ColorKey} or inherit"> - Removed ALConvertFontFamily and replaced it with ALResolveFontFamily.
- Set TextSettings.IsHtml to true by default.
- HasTouchScreen is now disabled in debug mode on devices without a touchscreen.
- Added TALAlignLayout.contents.
- Introduced new TALDialog component.
- Added
ColorKeyto pair with each color property. - Introduced
TALStyleManager. - In dark mode, resource loading now first checks for
xxx_darkbefore loadingxxx. - Renamed
TALIniFiletoTALIniFileA. - Added
TALUserPreferences.
- Rename alcinoe-common.jar to alcinoe-broadcastreceiver.jar
- TALGeoPositionSensor has been replaced by TALGeoLocationSensor.
- TALTabControl has been replaced by TALPageController.
- TALPageIndicator has been added.
- TALBufDrawableCacheEngine now inherits from TALRefCountObject.
- Renamed TALBounds.OnChange to TALBounds.OnChanged.
- Renamed TALPosition.OnChange to TALPosition.OnChanged.
- Added the function ALGetHasTouchScreen.
- Removed TALControl.BeginTextUpdate and TALControl.EndTextUpdate.
- Added Metal support to TALColorAdjustEffect, removed Highlights and Shadows, and changed the Contrast parameter to accept values from -1 to 1 (instead of -2 to 2).
- Added TALRefCountBitmap.
- Removed AutoShowing and Opacity from TALScrollEngine; these properties are now directly managed in TALScrollBox.TScrollBar.
- Added TALScrollEngine.startScroll and introduced TALScrollEngine.TouchMode (with options: Disabled, Enabled, Auto) as well as TALScrollEngine.Friction.
- Added the fill property and published ScrollEngine to TALScrollBox.
- Removed HasTouchScreen, AutoHide, and ShowScrollBars from TALScrollEngine.
- Changed TALScrollBox.TViewportPositionChangeEvent from:
to
procedure (Sender: TObject; const OldViewportPosition, NewViewportPosition: TPointF) of object;procedure (Sender: TObject; const OldViewportPosition, NewViewportPosition: TALPointD) of object;
- Replace RotationCenter with Pivot (RSS-2824).
- The Scale property of controls now only affects their visual size (zoom in/out) and no longer impacts their alignment within the parent layout (RSS-2823).
- Added
FillMaskResourceName,FillMaskBitmap,FillImageNoRadius,FillCropCenter, andFillBlurRadiusproperties toTALMultiLineTextOptions. - Introduced global variables
ALBrokenImageResourceName,ALBrokenImageWidth, andALBrokenImageHeightto define the image shown when downloading an image inTALImagefails. - Added the
TALPositioncomponent, a lightweight version ofTPosition. - Removed
ALGetResourceDirectory. - Introduced the
TALBitmaptype, along with theALNullBitmapconstant and theALIsBitmapNullandALFreeAndNilBitmapfunctions. - Renamed the following functions:
ALCreateBitmapFromSkPixmap,ALCreateBitmapFromSkSurface,ALCreateBitmapFromSkImagetoALCreateTBitmapFromSkPixmap,ALCreateTBitmapFromSkSurface,ALCreateTBitmapFromSkImage.ALUpdateBitmapFromSkPixmap,ALUpdateBitmapFromSkSurface,ALUpdateBitmapFromSkImagetoALUpdateTBitmapFromSkPixmap,ALUpdateTBitmapFromSkSurface,ALUpdateTBitmapFromSkImage.ALCreateBitmapFromCGContextRef,ALUpdateBitmapFromCGContextReftoALCreateTBitmapFromCGContextRef,ALUpdateTBitmapFromCGContextRef.ALCreateTextureFromBitmapSurface,ALCreateTextureFromBitmap,ALUpdateTextureFromBitmapSurface,ALUpdateTextureFromBitmaptoALCreateTextureFromTBitmapSurface,ALCreateTextureFromTBitmap,ALUpdateTextureFromTBitmapSurface,ALUpdateTextureFromTBitmap.
- Corrected typo in
ALGetImageDimensions. - Added
ALGetExifOrientationInfoto retrieve ExifOrientationInfo from a stream as well as from a file name. - Added
AFillResourceStreamparameter toALGetShapeSurfaceRect. - Removed all auto-generated
ALLoadFromxxxfunctions fromalcinoe.FMX.Graphics. UseALCreatexxxFromResourcefunctions instead. - Replaced the
ALDrawRectanglefunction with theTALDrawRectangleHelperrecord. - Removed the
ALDrawCirclefunction; useALDrawRectanglewith radius instead. - Updated
TALImageto support downloading images from the Internet. AddedMaskResourceName,MaskBitmap,BackgroundColor,LoadingColor,BlurRadius,Corners,CropCenter,Shadow,Sides,Stroke,XRadius, andYRadiusproperties. - Added the
TALEllipsecomponent. - Introduced the
AlIsHttpOrHttpsUrlfunction.
-
Default Fill Color Change
The default fill color ofTALBrushhas been updated to white (previously$FFE0E0E0).
This change affects the default fill color of components such asTALRectangleandTALCircle. -
Removal of
TALFont.AutoConvertProperty
TheAutoConvertproperty has been removed fromTALFont.
Its behavior is now always enabled (equivalent toAutoConvert = True).