Q&A log files from the Marco Cantu RAD in Action Webinar “Building Rich Business Applications with FireMonkey”

By: Tim DelChiaro

Abstract: Questions and answers about FireMonkey, Delphi, C++Builder and RAD Studio

Q&A log files from the Marco Cantu RAD in Action Webinar “Building Rich Business Applications with FireMonkey” that took place on November 15, 2011.

If you have additional questions you can contact Marco Cantu via email at marco.cantu@gmail.com

Q: I will have to leave before QA. Will they be available in the replay laid out for download later?

A: I will capture the audio for the Q&A and also the Q&A log. Thanks for being with us for the presentation.

Q: One attraction of FireMonkey is the multiple targets. Is the Android OS supported as a target?

A: Not yet, but Android is on the Embarcadero Roadmap. For now FireMonkey runs on Windows (32/64), Mac OS X (32), and iOS (iPhone, iPad, iPod Touch).

Q: How to use data grid with LiveBindings?

A: You can use LiveBindings with FireMonkey's StringGrid.

Q: Does your platform support Unicode (Russian characters for example)?

A: Yes, full Unicode support for FireMonkey using Strings just has we have for VCL - since 2009 versions.

Q: Can you discuss the timeframe?

A: John Thomas (Director of Product Management for Developer Tools) is working with R&D to define the future roadmap and timing. I always reply to this question as "when it is ready". Android support is related to the development of our next generation compilers for Delphi and C++ which are being developed as I type this. Availability of previews and releases will track the status of the development. Right now the way to get to the future is with XE2 and learning FireMonkey for multi-platform development. If you program to FireMonkey we will make sure that your applications can be recompiled for additional platforms using one codebase for your applications. JT blogged about the general directions for the roadmap on his Embarcadero blog at https://blogs.embarcadero.com/jtembarcadero/2011/09/17/may-the-roadmap-rise-with-you/.

Q: is there a simple way to "mix" styles for different components or does one need to cut and paste using something like notepad?

A: If the components have different internal structure then it is harder to share styles. For most FireMonkey components you can assign the Style to each component from the collection of styles in a StyleBook.

Q: Does the MAC compile environment for iOS targets use the exact same source files as created for the Windows platforms, or will I need to build in compiler controls to the source code?

A: Yes and No. Different project files but same form file and unit source code. You can use IFDEF for Delphi and FreePascal to do specific platform work. 95% is shared. When you build source code on Windows - that source is the same on iOS/XCode/FPC.

Q: Why does FireMonkey’s TForm have fewer events than VCL’s TForm?

A: TForm is not a core element of FireMonkey. In VCL TForm is a WinControl. In FireMonkey, the host components like TForm are "Special" - they don't share the same properties/events of the other components. They are containers in FireMonkey and special code is handled on each platform.

Q: Is it possible to install Delphi XE2 on a Mac?

A: Yes on a Virtual Machine running Windows

Q: Will the new FireMonkey book include chapters about creating custom component packages?

A: Yes it will cover all aspects of FireMonkey development.

Q: Is/will Indy be available for Mac OSX ?

A: Indy is available for Mac OS X. Not yet for iOS. But, you can use the low lever iOS interfaces to use TCP/IP and HTTP with Pascal code.

Q: I can't make the drag and drop of TreeViewItems in TreeView work properly, is it bugged?

A: FastReports said in Moscow that they are working on FastReports for FireMonkey - due by the end of the year.

Q: It was mentioned that FM doesn't support RichEdit. Is it in the development plans as well as other VCL components?

A: RichEdit support is on our roadmap

Q: I understand Marco is working on a FireMonkey book - are other sources of documentation, including some tutorials and best practices going to be built by Embarcadero?

A: Marco also has a white paper – 60+ pages on FireMonkey. The link to the white paper and demo code download is https://forms.embarcadero.com/forms/AMUSCA1110FireMonkey-MarcoCantuWhitepaper. There are also short videos by Marco on the landing page at https://www.embarcadero.com/rad-in-action/firemonkey.

Q: Will there be any tools to move current Delphi apps to FireMonkey?

A: MonkeyGroomer (https://pascalcoder.blogspot.com/search/label/MonkeyGroomer) and MIDA https://www.midaconverter.com.

Q: If I were to create a FireMonkey application to deploy on Windows and MacOS, what are the options for printable reports?

A: Stay tuned for tech partner solutions for Reporting.

Q: Are custom 'primitive' shapes supported for use in FireMonkey styles?

A: There are HD and 3D primitives - for shapes. you can also use a TCanvas to paint to the surface of a control and a form. You change the shape of controls with styles.

Q: For my older app with a Paradox DB, what would be a better DB for future cross platform versions?

A: For multiplatform and a local DB - not a lot of choices - you can use ClientDataSet. SQL databases are best for multiplatform. InterBase is available on Windows and Mac.

Q: Is it possible to use Windows API with an IFDEF in FireMonkey?

A: Yes

Q: Could you give talk some about future of Delphi?

A: Delphi will continue to evolve for years to come. We are working on a next generation Delphi compiler for more platforms and processors. the first step is to get to XE2 and FireMonkey. Everything goes from this point this quarter!

Q: What iOS features are not available? (e.g. accelerometer)

A: Everything on iOS is available via code in your FireMonkey applications. Use the iphoneall unit to get at everything. Anders Ohlsson has lots of example code at https://blogs.embarcadero.com/ao/category/ios. Anders is also wrapping the code as components see his iOS component blog post at https://blogs.embarcadero.com/ao/2011/10/28/39192.

Q: It was more to do with shapes OTHER than TRectangles and TCircles - e.g. my own custom paths (triangles, curves, hexagons, etc) - e.g. things I might draw with a TPath object.

A: A path of a sequence of points, etc is also available for custom shapes.

Q: I would assume that FireMonkey will also be able to render rich and vivid Data Visualization with gauges and graphs -- are there already a way to do this?

A: TMS Software is working on additional components for gauges, dials, etc. TeeChart Lite is included in XE2 - with 2D and 3D graphs for FireMonkey.

Q: Can a developer create his own polygon-shaped control that has an identical footprint on the form instead of an enclosing rectangle for a footprint?

A: Yes

Q: Is there still TADOQuery and if not what is the best replacement component?

A: DBGo for Ado is still available for Windows. We also now support ODBC with dbExpress.

Q: From within a FM application, is it possible to call Mac OSX API ?

A: Yes it is. You can do this both on Windows and Mac OS X. YOu can also make native calls on iOS as well.

Q: How big a percentage of the doc team are working on the C++ side. It seems that the C++ docs are really falling behind.

A: Our documentation team is working on more product and FireMonkey documentation for for both languages.

Q: Will Anchors property be available in FireMonkey, if so, when?

A: Anchors are on the FireMonkey roadmap.

Q: Is it safe, that to mix FireMonkey and VCL forms in the same project?

A: Not officially supported. You can create a VCL application and then add FireMonkey forms. Stephen Ball has a blog post where he shows to put FireMOnkey form in a DLL. You can find information on Stephen’s blog at https://blogs.embarcadero.com/stephenball/2011/10/10/writing-a-firemonkey-dll-for-use-with-a-vcl-application/

Q: I'm using GLScene with Delphi XE; is FireMonkey 3D compatible with GLScene ? How difficult would be adapting my apps ?

A:It should be very easy to migrate your code to FireMonkey. The technologies of 3D are similar.

Q: Will servers and clients for tcp/ip, http, (like Indy) be available for iOS (and Android)?

A: Talk to the Indy team. They want Indy on more platforms. That is the goal.

Q: It is possible to have a database localy in Mac or IPhone... like SQLite or other

A: Yes. Anders Ohlsson has an example of FireMonkey and SQLite on iOS. You can download the example program at https://cc.embarcadero.com/Item/28605. All his iOS examples are also listed on his blog at https://blogs.embarcadero.com/ao/category/ios.

Q: Great presentation. really good start.

A: More presentations, webinars, videos and articles to come this quarter and beyond. Stay tuned to our events calendar on embarcadero.com and edn.embarcadero.com

Q: Even RemoteFX from Microsoft?

A: Remote Desktop works fine - with Windows 7 and Server 2008. Check with Microsoft for the right version that supports GPU remoting.

Q: are you running on a Mac with VMWare or Parallels?

A: Yes - both work - VMWare and Parallels. You can also use VNC. Citrix has problems that Citrix need to fit.

Q: Is FireMonkey HD backward compatible to Windows XP? If not, how far back will it go?

A: You can run FireMonkey HD apps on Windows XP. Check to make sure you have the DirectX version 9 or later on your Windows XP machine.

Q: Can FireMonkey components be used in a vcl app?

A: Not directly, but you can mix VCL applications/forms and FireMonkey Forms that are added and can be shown. Technically possible, but not tested. You can add FMX form to your VCL project and then Form2.Show. Stephen Ball has a blog post showing FireMonkey form in a DLL and then used it in VCL application to separate the two.

Q: Is there a replacement for TWebBrowser or the Indy components in FireMonkey?

A: Not yet. It is on the roadmap - we must have a multi-platform solution for video, audio, browsing, etc. Indy components for Windows and Macintosh but not iOS yet. Marco covers this in his white paper.

Q: Are there any step-by-step instructions somewhere how to set up XCode and Free Pascal?

A: Manually install XCode first on the Mac. Then copy the FireMonkey iOS installer from your Delphi install folder over to Mac and complete the install. On the default install you’ll find this dmg file in C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\FireMonkey-iOS. Also remember to copy the Platform Assistant install over to your Mac and install to support debugging and deploying applications from the Windows IDE. On the default install you’ll find this in C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer.

Q: With iOS apps, does the FireMonkey splash screen always appear?

A: Default is the FireMonkey splash screen - you can create your own or delete it.

Q: Marco, Thank you for helping me understand FireMonkey. Please keep up your great work. Are you going to post more videos on YouTube?

A: That is the idea - Marco will do more videos, time permitting.

Q: I don't use XE2 yet, what's the requirement in order to build XOS apps in Delphi running on Windows? Grazie

A: For OSX - everything is built in the XE2 IDE. You don't even have to have a Mac. Best practice would be to do final debug on a Mac, Mac Mini for final testing.

Q: Does Parallels work as well as VMWare?

A: Yes

Q: 1. I/O filesystem has same procedures like ExtractFilePath etc.?

A: Most of the low level Windows file operations are also available on the Mac. Best is to use the IOUtils unit with file path and operations - fully cross platform.

Q: Can we develop client, for an multitier app running on windows, for iOS?

A: You can do Multitier directly with DataSnap for Windows and Macintosh. Anders Ohlsson also shows you how to go from FireMonkey iOS to DataSnap server. Check out his blog and Coderage 6 sessions. Anders blog is at https://blogs.embarcadero.com/ao/category/ios. CodeRage 6 replays can be found at https://www.embarcadero.com/coderage/sessions.

Q: May I use standard system methods for reading files for example assignfile(f)?

A: You can use TextFile I/O on Windows. We recommend you switch to using Stream files for reading and writing cross platform. You should also use the IOUtils unit for folder and file manipulation for multiplatform applications.

Q: when will his FireMonkey book be out?

A: when it is ready. Earlier next year is the target.

Q: Are there any report building tools available for FireMonkey or what is the best way to generate a "report" using FireMonkey on OSX?

A: FastReports is working on a version of FireMonkey for Fast Report.

Q: As a non XE2 user, does all code get compiled down to native hardware level, not just the visual parts?

A: Yes - native code all the way - on Windows, Mac and iOS!!!!

Q: When will FireMonkey for Android be released?

A: When the next generation compilers are finished for Delphi and C++. Learn FireMonkey now, develop FireMonkey applications and then when we have compilers for Android - you'll just have to re-compile to generate Android client apps. One CodeBase!!! No runtimes (unless you choose to build with runtime packages).

Q: Currently using SAP ActiveX components in the Delphi 10 VCL for remote function calls. Any way to add SAP connectivity to FireMonkey for a Windows and IOS?

A: ActiveX controls - yes with FireMonkey on Windows 32 or 64-bit. Not for Macintosh/iOS - no ActiveX support (ActiveX is a Windows platform technology). Use MultiTier architecture if you need to use these Active X controls. The Fire Monkey client on Mac and iOS can talk to a DataSnap server that then uses the ActiveX controls.

Q: What kind of Community /Tech support is available for Firemonkey & XE2, especially for Microsoft VS coders moving to this platform IDE?

A: Full community, newsgroups, consultants, videos, etc - a worldwide community and threads on many social sites. Contact Marco if you need help moving to FireMonkey and multi-platform.

Q: how to get the whitepaper where was that link?

A: The URL is https://forms.embarcadero.com/forms/AMUSCA1110FireMonkey-MarcoCantuWhitepaper

Q: Are there any performance differences between a VCL application vs. a FireMonkey application? How about the equivalent FireMonkey application running on OSX?

A: Performance differences - VCL can be faster on some things but you are tied to Windows platform. Graphics are faster on FireMonkey that take advantage of the GPU and offload the CPU.

Q: any recommendations as far as cross-platform support for apps that today are written to use winsock for socket-level data interactions, including Win, OS X, and iOS? Indy? Etc? (Not DataSnap)

A: FireMonkey can work with Indy or any other socket based library. Indy is available for Win/Mac. You can use lower level sockets on iOS.

Q: Can Cloud databases be written to as well as read?

A: Yes. XE2 supports reading and writing to Amazon and Azure storage. The demos Marco gives you have a VCL client to write and FireMonkey client to read the storage elements - but you can do both in FireMonkey.

Q: What is the commitment to FireMonkey for Android?

A: We are totally committed to supporting FireMonkey on the Android platform.

Q: Will FireMonkey iOS apps have any trouble getting approved by Apple?

A: There are no problems getting iOS apps approved by Apple. Anders Ohlsson has his Delphi FireMonkey clock application available for free on the Apple store at https://itunes.apple.com/us/app/anders-analog-clock/id475178939. So, there are no problems at all!

Q: FireMonkey Roadmap available?

A: John Thomas, Director of Product Management for Developer Tools has a blog post talking about futures - he is also working on a roadmap update for early next year. His blog roadmap post is at https://blogs.embarcadero.com/jtembarcadero/2011/09/17/may-the-roadmap-rise-with-you/

Q: If you walk in to a big book store you'll find literally dozens and dozens of huge tomes on programming in Microsoft languages and platforms. Understanding that Embarcadero is not a book publisher, are there any plans for Embarcadero to "motivate" authors (like Marco and others) to produce more complete and in-depth publications on some of these new and complex features of Delphi?

A: Marco Cantu and Bob Swart have books for Delphi - Marco is on Amazon, Bob is on Lulu.com. there are also other books and eBooks available. And EDN has loads of articles, tons of videos and more info for you. Also check out our docwiki.embarcadero.com for more doc, examples and HowTos.

Q: Is there much presence in the UK?

A: Lots of developers in the UK. We had our largest audiences ever at every UK launch and more at the FireMonkey in Active Live 6 hour workshop two weeks ago in London. If you need help in the UK - Simon J Stuart is a consultant well versed in FireMonkey and migrating VCL applications - https://www.simonjstuart.com/

Q: Are there any 3rd party component vendors that already committed to provide components for Firemonkey? If yes, can you name the vendors?

A: Contact your 3rd party technology partners - they are all working on FireMonkey applications. Mitov Software has their components for FireMonkey. TMS Software and FastReports are completing FireMonkey components as well. You can also use our tech partner search engine and tp.embarcadero.com

Q: I'd like to program the iPhone using C++ Builder... When will it be released?

A: We are working on next generation Delphi and C++ compilers that will support additional processors including ARM. When that compiler is ready, we will be able to support FireMonkey and more on iOS and Android platforms. When? When the work by R&D is completed.

Q: how many layers of nesting can you have in FireMonkey when building a item for the form? Like a button with an image and then text on the image, etc.

A: There is no limit to the levels of component nesting.

Q: Is there any word from the major tools vendors to produce FireMonkey controls?

A: contact them directly. They will be happy to hear from developers and potential customers. We know of work being done by many of our technology partners.

Q: Do you have any automated tools to convert VCL to FireMonkey?:

A: There are two converters that we know about for VCL to FireMonkey – MonkeyGroomer (open source tool) and Mida (commercial tool) that are in development and stages of release. See the links to these two tool’s web sites above in the Q&A log.

Q: What is the best way of implementing automated unit tests with FireMonkey?

A: You can use Unit testing in your code that is using FireMonkey. You can also screen scrape the bits to make sure that FireMonkey is putting out components in the way you want.

Q: Whatever happened to Mono?

A: The Mono project is still alive and well. You can use Mono with Embarcadero Prism to run .NET applications on Macintosh, Linux and other platforms.

Q: When can we expect a 'complete' version of the help file for FireMonkey?

A: The FireMonkey help is constantly being updated by our doc team. All of their ongoing work appears in real time on the DocWiki (https://docwiki.embarcadero.com). The Doc team generates help file updates based on content that is put in the DocWiiki.

Q: Why in the first Mac (pizza) example did we got 3 tomatoes and 2 cheeses (with only 2 mouse clicks) - still beta code? bug? Is FireMonkey really production yet? Or soon?

A: This was an edit of the recording by Marco that didn't show all of the clicks. Not a bug at all - FireMonkey works!

Q: I was wondering how much programming do I need to start making databases and interfaces. I currently understand and made a few programs but feel i need a lot more training. I was looking for tools in which i program less and design more.

A: Well, you can do a lot with just components - build master/detail client/server database application with no lines of code. But when you want to do something with business logic (that is not SQL) then you have to write a few lines of code.

Q: I am sorry but I missed the statement about Fire Monkey being available for Builder based applications. Can you advise?

A: FireMonkey works for Delphi (Win32, Win64, OSX32, iOS via FreePascal connection) and C++Builder (Win32, OSX32).

Q: But no IOS for Builder?. I assume this is for the XE 2 release

A: Correct - our next generation C++ compiler will get us to ARM processors for iOS and Android. For Delphi we leverage (temporarily) the Free Pascal Compiler (Marco talking about this right now) - which we will remove as a requirement when we have our next generation Delphi compiler for ARM processors.

Q: On his blog the author of GLScene Eric Grange has raised some valid concerns with the 3D architecture of FireMonkey. Is Embarcadero aware of these concerns and are they considering his suggestions. http://delphitools.info/2011/10/06/a-look-at-the-3d-side-of-firemonkey

A: We love all the feedback coming from FireMonkey developers. We are doing monthly updates to FireMonkey as part of our total commitment to the platform and to moving FireMonkey forward. We are using all the feedback to improve FireMonkey and also in our road map of capabilities in the future.

Q: Should the FireMonkey dmg with update 2 install on a mac with xcode 4.2? I alked with tech support and was told the original package need ver 4.1. I downloaded update 2 and the install still failed.

A: Our R&D and Q/A teams are testing FireMonkey with the latest version of Xcode and Mac OS X. If you are having problems with the install, please post a report in Quality Central.

Q: I have the source for my embedded database engine so can I recompile the library so that my apps can run native on the Mac?

A: You should be able to re-compile your Delphi code for Windows 32, Windows 64 and Macintosh OS X 32. Depending on what version of Delphi you build previous versions of your database engine, you might encounter some issues (Unicode character string support for example, or 32 versus 64 bit pointers).

Q: one last question, making video game using this tool seems to make it more easy. Do you have any plans for adding feature for game developers?

A: There are many developers who are working on games using Delphi. Some are now exploring using FireMonkey for their games. While we encourage all the uses of Delphi, C++Builder and FireMonkey, we are focusing our efforts more on business application use of FireMonkey at this time. We do have plans, on our internal road map, to add voice, gesture, physics, biometric, and other capabilities for FireMonkey. Start using FireMonkey today, and you can do a lot of the work yourself using readily available third party libraries for the aforementioned capabilities.

Server Response from: ETNASC03