• Recent Tutorials

  • Delphi XE 2: Meet FireMonkey

    Well the cat, or monkey is finally out of the bag and everybody knows what is to come really soon for Delphi XE2. FireMonkey is the latest a greatest framework which everybody is talking about. Here is a video by Andreano Lanusse that explains how you use FireMonkey in your new Delphi applications. He also goes on to show you how the new XE2 dev tool will target for OS X and iOS as well as Windows 32/64-bit.




    iOS support was included to create projects by exporting your existing projects into an Xcode project that you can load and compile for iPhone or iPad. Great things can be done with this next version of Delphi and everyone is excited!



    Andreano Lanusse Explains New Framework and Platforms in Delphi XE2


    News Source: Andreano Lanusse Blog
    Comments 24 Comments
    1. czar's Avatar
      czar -
      This is going to be awesome

      I am put in my pre-order asap
    1. paul_nicholls's Avatar
      paul_nicholls -
      Wow! mega awesome dude! <wipes drool of keyboard...>

      cheers,
      Paul
    1. WILL's Avatar
      WILL -
      I got to look at early versions of this stuff in their beta program. I selected a few others to be invited to take part, however I wasn't able to say much about it due to the NDA. Since they've finally announced it I can re-utter what's been announced by Embarcadero employees at least. I've been told that FireMonkey could serve in some way as a means to adapt it as a framework to work with game assets, but that it on it's own would not work for a game engine.

      Perhaps if the game development community were to start an extension framework off of FireMonkey, say called FireSquirrel or something... lol Some layer that would allow game-oriented asset loading and usage. It could be something akin to a next gen DelphiX.
    1. czar's Avatar
      czar -
      @Will - agreed from what I have seen it should not be too much hassle to wrap around it it make it easier to make games.

      Being able to create native code on various platforms is so exciting. I don't see any one making a crysis 3 with this stuff but there is so much scope for casual games and other applications that require game technology.
    1. WILL's Avatar
      WILL -
      Yeah I was thinking of the kind of hope this brings to promote making casual games with it. Imagine a modern day Macventure (De Ja Vu) engine made with it?
    1. arthurprs's Avatar
      arthurprs -
      Freaking awesome.

      What about other controls? Data aware stuff?
    1. WILL's Avatar
      WILL -
      I believe FireMonkey can completely replace VCL if you wanted. In fact I'm sure that you can make a completely VCL-less app for both Windows and Mac if you chose to. What will be missing or what will need to catch up to the level of VCL, I don't know, but I'm sure more information would be given as the World Tour progresses.
    1. czar's Avatar
      czar -
      The amazing thing is that firemonkey controls can be made dataaware - so you can bind the colour of a button to a field in a database, or to a an edit box. Live bindings are amazingly flexible and will open up new possibilities.
    1. LP's Avatar
      LP -
      The GUI seems ok, but how about the rest of features provided by iOS? Will it allow accessing sensors such as accelerometer, magnetometer, etc.?

      Is there a way to not use FireMonkey or use it to a minimal extent and instead just use plain OpenGL ES?
    1. czar's Avatar
      czar -
      There are libraries to access accelerometer etc

      as for the rest time will tell I suspect that we will have access to OpenGL
    1. WILL's Avatar
      WILL -
      You may have to 'put up with' at least an intermediate layer of FireMonkey to get to OpenGL, but hopefully it'll be fast enough to not slow down your applications. Only testing will tell I presume.

      From what I've seen of FireMonkey however, it's no slug though.
    1. LP's Avatar
      LP -
      Quote Originally Posted by WILL View Post
      You may have to 'put up with' at least an intermediate layer of FireMonkey to get to OpenGL, but hopefully it'll be fast enough to not slow down your applications. Only testing will tell I presume.
      Yes, this was exactly my question because if FireMonkey is tightly integrated with OpenGL on iOS, will it allow you to use OpenGL at the same time?

      Also, iOS provides its own set of UI, e.g. UIKit framework. Is FireMonkey built on top of that and if not, are you forced to use FireMonkey on iOS or you can live without it? That is, is there a way to use native iOS UI controls with/without FireMonkey?

      I am asking all this because even though I've been subscribed to Delphi's Pulsar Beta program, I never got my hands into downloading and testing it.
    1. chronozphere's Avatar
      chronozphere -
      The animation in the video is a bit chunky. Allthough the technology behind it is great and required a lot of effort, I can't really get excited by the resulting app.
    1. paul_nicholls's Avatar
      paul_nicholls -
      Quote Originally Posted by chronozphere View Post
      The animation in the video is a bit chunky. Allthough the technology behind it is great and required a lot of effort, I can't really get excited by the resulting app.
      don't forget that most video capture software slow down the FPS of any game/app that is running so it can look more chunky that it could otherwise be...

      Or did you mean something else?

      cheers,
      Paul
    1. andrelubke's Avatar
      andrelubke -
      Quote Originally Posted by chronozphere View Post
      The animation in the video is a bit chunky. Allthough the technology behind it is great and required a lot of effort, I can't really get excited by the resulting app.
      I am a beta tester for a while now for Delphi Pulsar (the code name for Delphi XE2) and I can assure you that the animations in Fire Monkey are not chunky AT ALL! There must be something wrong with the video. In my experience te animations are very smooth and fluid and above all FAST!

      So don't worry about that at all
    1. phibermon's Avatar
      phibermon -
      It's true that screen video capture software may not be a true representation of the frame-rate

      A) Because it may be capturing frames at a lower rate (eg 10-20 fps)
      B) Frame capture may hit rendering performance and slow down the fame-rate

      But it can't be said that any FAST performance has anything to do with Delphi. It's rendering using OpenGL, there's the performance. It's wrong to attribute it to Firemonkey as if it's responsible for the magic. I've got a GUI comparable to FireMonkey, it renders at over 2000fps on my card, I'm not about to claim that's anything to do with my code! it's just a good card

      Oh and note in the video that at least at one stage the app is running on an emulator which may not provide hardware accelerated graphics. You can naturally expect better performance on IOS hardware.

      But also note that any GL GUI is going to be using video memory for pixmaps, buffered surfaces etc you may be dissapointed if you plan to use FireMonkey in conjunction with a 3D game engine. Unless they've provided functionality to unload/load the interface resources from memory you might find you've not got much left for your game!

      There's no hint so far that they are catering for game developers, don't expect it to play nice. For all you know you might be sandboxed in with no GLES calls.
    1. andrelubke's Avatar
      andrelubke -
      Quote Originally Posted by phibermon View Post
      It's true that screen video capture software may not be a true representation of the frame-rate
      But it can't be said that any FAST performance has anything to do with Delphi. It's rendering using OpenGL, there's the performance. It's wrong to attribute it to Firemonkey as if it's responsible for the magic. I've got a GUI comparable to FireMonkey, it renders at over 2000fps on my card, I'm not about to claim that's anything to do with my code! it's just a good card
      You are absolutely right. Fire Monkey uses DirectX on the Windows platform and OpenGL on the other platforms.
      On modern hardware with an average to good graphics card you can expect good performance. I was merely responding to the person who thougt that the 'chunky' performance on the video was related to Fire Monkey.
    1. andrelubke's Avatar
      andrelubke -
      Quote Originally Posted by phibermon View Post
      It's true that screen video capture software may not be a true representation of the frame-rate


      But also note that any GL GUI is going to be using video memory for pixmaps, buffered surfaces etc you may be dissapointed if you plan to use FireMonkey in conjunction with a 3D game engine. Unless they've provided functionality to unload/load the interface resources from memory you might find you've not got much left for your game!

      There's no hint so far that they are catering for game developers, don't expect it to play nice. For all you know you might be sandboxed in with no GLES calls.
      By the way I am still under a non disclosure agreement as a beta tester, but I can tell you (this is no secret anymore) that you can import and display 3ds models with Fire Monkey, there are containers for 2d and 3d, and there are low level functions for communicating with DirectX/OGL.

      Writing a casual game engine library is certainly possible. Don't expect an Unreal 3 engine
    1. phibermon's Avatar
      phibermon -
      Ahh well that's excellent! it's very good that they have catered for 3D development outside of firemonkeys intended purpous I expect that the ability to load some model formats and lower level access to the graphics API will please many! being able to use such things while still having access to the firemonkey widgets will enable devs to rapidly prototype and experiment with 3D techniques.

      Please don't get me wrong, I'm very excited by XE2 but for me it's more that having such an easy way of deploying apps to the major OS's/Devices will most likely attract many new users to the OOP language. Especially given the recent talk of people flocking back to native languages after the rather tedious honeymoon period of .NET, XE2 has come at the perfect time.

      What's as powerful as .NET while having all the performance+cross platform potential of C/C++? Delphi and FPC of course!

      (did you know the man largely responsible for .NET was the same man that designed Delphi? or at least, that's my understanding)
    1. andrelubke's Avatar
      andrelubke -
      Quote Originally Posted by phibermon View Post
      (did you know the man largely responsible for .NET was the same man that designed Delphi? or at least, that's my understanding)


      Yep, that man was Anders Hejlsberg. He originally wrote the Turbo Pascal Compiler and was also involved in Delphi. Later he went to Microsoft and was responsible for designing C sharp (and allso dotnet).
      http://en.wikipedia.org/wiki/Anders_Hejlsberg