FireMonkey and DXScene
For those how are interested in FireMonkey, I made some screenshots of some DXScene sample app.
It may give you some good starting point about the features of the upcoming Delphi XE2 user interface components.
Here is the main ControlsDemo screen:
When you compare it with the screenshots available in Andreano's Blog, you'll find out how close the rendering is...
On the DXScene demo, there is a 3D text animation in the background, and the main tabbed window is displayed in transparency.
When you change the theme to "Vista", you'll have the following rendering (I also set the opacity to 100%):
Then the "ScrollBox" tab displays a custom painted scroll-box.
You can move the content by click and dragging over the panel, so it will interact as expected with a touch screen:
Then the "TreeView and ListBox" tab:
Some additional components (I've changed the "Scale" parameter from initial 100% to 130 %: all scaling is made in real-time, in full vectorial rendering - including the image on the button):
Back to 100% scaling, some other components:
As you can see in the next screenshot, each components can be individually rotated and an opacity applied (here with global scaled to 120%):
Of course, this is a 3D framework.
Here I rotated the main window by 34°, and the rendering follows in
The components are still usable: for instance, you can still type in the EditBox, select an item in a ListItem or drag tracks and buttons...
Here are DB-components, as included in DXScene (I think those won't be available as such in FireMonkey, because it was said that it will use LiveBinding instead of those component-based DB access):
And a grid component - still live working: click on the check sign and it will toggle, and you can edit the text column:
This grid content is totally virtual.
The following events will retrieve the cell content at runtime:
procedure Grid1GetValue(Sender: TObject; const Col, Row: Integer;
var Value: Variant);
procedure Grid1SetValue(Sender: TObject; const Col, Row: Integer;
const Value: Variant);
Here is the Style editor included with DXScene.
You can see that in fact, every component is a container. To make a component, you put other basic components within. And you can adjust the attributes of every single element, according to your style.
It's a very powerful way of creating components, and it will also achieve a good coherency of the resulting rendering on screen.
All those screenshots were taken with the full version of the latest released DXScene version.