Skip to content

Animated imagelist for VCL #406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

wesson09
Copy link

@wesson09 wesson09 commented Apr 2, 2025

Why

Under Windows here is no easy way to provide animated icons/images to standard Windows components such as Buttons, treeview.
The very popular Virtual Treeview component also lack the ability to easily animate cell content

Solution

Implemented TSkAnimatedImageList, a TCustomImageList descendant, for many standard Windows VCL controls
Implemented TSkAnimatedBitmap, a TComponent descendant, for Virtual treeview or any OwnerDraw controls

Features

In TSkAnimatedImageList:

  • Items can mix raster images (bmp, png, jpg,...), vector images (svg) or animations (lottie, tgs, ...)
  • very simplified handling of animation - running or not. All animation are looped
  • Designtime Editor has been added for raster image

in TSkAnimatedBitmap:

  • Rendering is done either automatically or on demand
  • Easy to use in OwnerDraw event of any VCL component

Demo application

The demo app is located in folder [skia_root]Samples/AnimImageList
This demo requires Virtual Treeview

Configuration

As unit Vcl.Skia.Pas has been changed, a full recompile is needed.
Virtual treeview is also needed to build the demo application.

Note

Sorry for the noise in the DPROJ file - My Delphi IDE is doing it automatically

wesson added 2 commits April 2, 2025 15:05
SkAnimatedBitmap receive a SKIA animation and can render it in a TBitmap

SkAnimatedImageList is an extension of the Windows Imagelist, capable to mix Bitmap (png, jpg, ...), vector (svg) or animations (lottie, json, tgs) as image sources.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant