Delphi Boot Camp Day 3 – Building Effective User Interfaces with FireMonkey

by Sep 6, 2016

This page contains resources and the replay for day 3 (September 7th, 2016) of the Delphi Boot Camp.


Jim McKeeth

Jim McKeeth
Evangelist & Engineer
Embarcadero Technologies



Daniele Teti
Developer & Author
bit Time Professionals


  • User Interface Considerations
  • Layouts & Paradigms
  • Using Animations
  • Using Effects
  • Using Transitions
  • Screen resolution
  • Customizing Styles and Appearance
  • Planning for Mobile and other platform
  • Mastering FireMonkey controls, shapes, and effects



Q&A Logs

1st Session


Q: Can you anchor to the parent as a percentage of size?

A: Anchors is a position (x,y) for each of the four points. You can do calculations using code if you want other anchoring. TGridLayout supports percentage sizes


Q: How does FM handle situations where different alignment settings for an object are incompatible?

A: Not sure what you mean by different alignments being incompatible with an object. If an Object (component) has an Align property – then it supports alignment. If you are asking about a component not fitting on the screen then alignment should still work for the form. If the form is completely visible on the screen, then you will see it.


Q: So, I can use fire monkey to build GUIs that run on windows?

A: Yes, for sure! Windows, MAC, iOS, and Android…


Q: how change the size of all elements inside the Form, when changes the Form eg. buttons, graphs, buttons?

A: If you use align and anchor and layouts in combination – then all those components will move when the form size changes. if you are position the components yourself at specific positions – then hook the OnResize event handler on your form – and you can iterate through the Component array of all components on a form and reset the positions you want.


Q: How do you scroll TFlow in form when alignment is client ?

A: you can surround the Flow layout in a scroll box and scroll horizontal and vertical for the layout. you can do this on the form as well – have scroll bars.


Q: When you update from Seattle to Berlin are all of the custom packages in Seattle automatically  migrated to Berlin?

A: You will need to reinstall them. If you have the source, it's easy. If they're through GetIt, just reinstall through GetIt. The Migration Wizard will also help move your settings from the old IDE to the new


Q: Is this example FireMonkey Image Shoe available to study ?

A: Yes, the most samples are available with the product!


Q: Does FMX provide any support for language independence?  For example the strings.xml files used in Android Studio which can be used to provide text in different languages according to locale information?

A: There are a lot of components that allows you to do localization, for example:


Q: Is it possible / what caveats to mix VCL forms and FMX forms in an application?  I'm thinking about an existing VCL application that controls a gambling display (which would be implemented in FMX



Q: Is there an automated conversion to 4K displays?

A: VCL and FMX work on 4k. The IDE also works on 4K


Q: How can you connect an animator to multiple objects?

A: each animation can only be attached to one property on one component. You can add an animator and use the OnProcess event handler to have code that would assign values to multiple components – to keep them in sync.

2nd Session


Q: even after bootcamp, if we want to ask small function question , where should we reach?

A: you can contact the presenters directly. our email addresses are on the first slide in each video on the replays. you can also ask questions on our Questions area or on the web forums. If you have a subscription you can contact our developer support and use one of your incident reports. Delphi Bootcamp 2016 YouTube replay playlist –


Q: What platforms do Firemonkey UI apps run on?

A: Win32, Win64, macOS, iOS, Android


Q: is there any way to put the layout or panel with automatic size according to the components within it

A: you can this with code.  You can put a layout into the form, panel, another layout, scrollbox. in FMX you can parent anything to anything – including a form inside a button 😀  You can align to contents, client and more.


Q: Many VCL components have a custom draw event  on the components canvas. Does FMX allow this?

A: Yes, although you can accomplish a lot of the same behavior with nesting components or custom styles


Q: those objects in the 3d form (T3d I think) can be picked at runtime? Or do I have to develop my own searchable data structure for that (i. e. CAE/CAD and/or GIS application fields)

A: You can add the ability to pick them at runtime, yes.


Q: Padding and margin are similar HTML box model. Additionally HTML box model offers setting border-width and border-color. A border is a line between margin and Padding. Is the border feature available in Firemonkey?

A: Some of the controls have Stroke and Fill, similar to the border line. It depends on the control.