Inspecting the default ‘platform’ FMX styles in XE3 (if you’re interested in...
One of the more obvious changes in FMX between the XE2 and XE3 releases is the (much) better default styling on Windows in particular. To my eyes this makes FMX controls in XE3 look like custom drawn...
View ArticleCross platform FMX/XE3 demos for CCR Exif
I’ve just added a set of FMX demos in the SVN trunk for my image metadata reading/writing library, CCR Exif. These are ports of the existing VCL demos (minus the resaving tester). In alphabetical...
View ArticleFMX in XE3 – good things and bad things
An easy way to summarise the good things about FMX in XE3 is to say it is much better than FMX in XE2; an easy way to summarise the bad things is to say it couldn’t have been any worse. Put another...
View ArticlePotential XE3 gotcha – dodgy old code vs. new TStream overloads
In XE3, TStream has acquired a number of new helper methods for Read and Write. Mostly these take the form of strongly-typed versions of Read, Write, ReadBuffer and WriteBuffer, called ReadData,...
View ArticleFMX tip – default style lookup names
This one was driving me up the wall – I’m working on (or rather trying to work on) an FMX application, one form in which loads a tree view dynamically. Since each node concerns a certain sort of data...
View ArticleQuick FMX tip – TBitmap.CopyFromBitmap is not synonymous with TBitmap.Assign
Quick FMX tip – if you are calling the CopyFromBitmap method of TBitmap and wondering why it isn’t working (cf. the first issue reported here), it’s probably because you are attempting to write to an...
View ArticleRetrieving the application’s version string
If you need to retrieve at runtime your application’s version number, you’re targeting Windows, and you don’t mind just having the major and minor numbers, then SysUtils has a handy GetFileVersion...
View ArticleDragging an FMX list box item to a grid without superfluous highlighting
This a somewhat specific problem, but anyhow, I have an FMX application I’m writing in which I was wanting to be able to drag a list box item to a grid. Now, the FMX TListBox has an AutoDrag property...
View ArticleFMX OnCloseQuery and OnClose woes on OS X – fixing QC 111362 (+ another bug)
If you’ve attempted to use FMX to write an application targeting OS X, you may well have come across CloseQuery bugs – for me it’s generally been any dialog shown by a form’s OnCloseQuery handler...
View ArticleFMX/OS X tip: enabling compiler optimisations to avoid weird startup crashes
I wasn’t able to trace the precise change that did it, but at a certain point I had the peculiar problem of an OS X debug build crashing at startup, and hanging the IDE if I attempted to run it in the...
View ArticleMaking the never-ending sorry tale of FMX menus a bit happier
For me, FMX at present has three main showstopping limitations: an inability to draw text that is neither wonky (XP/Vista) nor overly ‘sharp’ (W7/W8) on Windows; a TMemo that isn’t fit for purpose on...
View ArticleFMX tip: buttons with images that still have nicely-aligned captions
Unlike its VCL equivalent, the FMX TSpeedButton has no Glyph property; similarly, TButton doesn’t have the image properties added to the VCL version in D2009, and in FMX, there’s no TBitBtn class to...
View ArticleFMX tip: ‘labels’ with selectable text
Say you are designing a form in FMX, and wish to use a read-only edit box. No problem: stick a TEdit on the form and set its ReadOnly property to False. However, doing this doesn’t give any visual...
View ArticleFixing a TForm.BorderIcons bug in FMX/OS X
If you try removing biMaximize from a FireMonkey form’s BorderIcons property, you’ll find the ‘maximise’ (zoom) button on OS X (i.e., the green ‘traffic light’) resolutely staying both visible and...
View ArticleFireMonkey’s BoundsRect bug, and working around it
Just a quick one, but the BoundsRect property getter in the FireMonkey TControl is incorrectly implemented, returning (0, 0, Width, Height) rather than (Position.X, Position.Y, Position.X + Width,...
View ArticleFixing a FireMonkey TCheckBox/TAction bug
Try this: Create a new FireMonkey HD application, before adding a check box and an action list to the form. Double click the action list and add an action to it; set the action’s AutoCheck property to...
View ArticleHow to survive without image lists in a FireMonkey project
In the VCL, toolbar icons (glyphs) are set up using the TImageList component. In FireMonkey however, TImageList does not exist, and even TToolBar itself is half the component it is in the VCL – rather...
View ArticleWriting a simple FireMonkey TListLayout implementation
In FireMonkey, the usual way to group controls is to use a ‘layout’ of some sort. Conceptually, a layout is just a container control with no visual appearance of its own, at least by default. This...
View ArticleXE3 and Subversion/Google Code
Just a small heads up, but it has come to my attention that the XE3 IDE’s Subversion (SVN) integration does not support the older, pre-v1.7 Subversion format, at least out of the box. While there are...
View ArticleAnnoying FireMonkey buglet/oversight of the week
My personal FireMonkey buglet/oversight of the week is this: setting a TTextControl descendant’s Text property inside its constructor doesn’t do anything. For those who don’t know, TTextControl is the...
View Article