Andrea Magni has a blog post up where he demonstrates how to dynamically create a menu from an ActionList at runtime and how to use ApplyStyleLookup to customize TListView it background colors. The supplied source code should work for Delphi XE5 Firemonkey on Android and IOS. The main content of the application is contained inside of a TTabControl and then the menu itself pulls down from the top of the application. An arrow and rectangle are setup at the top of the app. When you click the arrow the menu drops down revealing the TListView. The listview is populated from a TActionList which allows you to easily use the Delphi IDE to manage your menu items. The next trick used is in the ApplyStyleLookup event of the TListView. The item background colors are customized using the following code: procedure TMainForm.MenuListViewApplyStyleLookup(Sender: TObject);
// hack the ListView style to have a dark background
LStyleObject := MenuListView.FindStyleResource('itembackground');
if LStyleObject is TColorObject then
TColorObject(LStyleObject).Color := TAlphaColorRec.Slategray;
end; Head over, read the full blog post about the dynamic menu and custom styles, and download the source code.
FMXExpress.com has over 700 tips and tricks for building cross platform apps on Android, IOS, OSX, Windows, and Linux with a single codebase and single UI using the FireMonkey framework found in Delphi and C++Builder.
FMXExpress covers top cross platform secrets for FireMonkey in C++Builder and Delphi XE5, XE6, XE7, XE8, Seattle, Berlin, Tokyo, Rio, and Sydney.