Developer Denis Vasilyev has a blog post up in Russian with a tutorial for creating TTreeViewItems with images in Delphi XE7 Firemonkey. Basically the blog post talks about how in the Delphi VCL library you would use a TImageList to handle the images in a TTreeView. However, Firemonkey has a different architecture which is it supports parent and child components. The tutorial shows how to create image controls at runtime and add them as children of the TTreeViewItem. It also shows how to do that with a TButton and a TEdit as well. The functionality in the demo source code only shows one level deep in the TTreeView but the same thing applies regardless of how many levels your TTreeView has. The demo has full source code and should work on Android, IOS, OSX, and Windows. Additionally, it compiles in Appmethod as well. I’d also recommend using a TRectangle w/ a bitmap because it is a lighter control instead of a TImage. Here’s some sample code from the demo showing the runtime object creation:
constructor TNode.Create(Owner: TComponent; const aText: String;
const aImageFileName: String);
begin
inherited Create(Owner);
Self.Text := aText;
FButton := TButton.Create(Owner);
FButton.Text := 'Send';
Self.AddObject(FButton);
FButton.Align := TAlignLayout.Center;
FButton.SendToBack;
FButton.OnClick := TreeButtonClick;
FEdit:= TEdit.Create(Owner);
Self.AddObject(FEdit);
FEdit.Position.X := 150;
FEdit.Position.Y := 25;
FEdit.SendToBack;
FImage := TImage.Create(Owner);
Self.AddObject(FImage);
FImage.Align := TAlignLayout.Right;
FImage.Bitmap.LoadFromFile(aImageFileName);
FImage.SendToBack;
end;
Head over and check out the full blog post about creating TTreeViewItems with images in Delphi XE7 Firemonkey.
Mirror: You can also download the source code for the demo directly right here.