Given the number of issues I and others are finding in fireMonkey I decided to log them here. QualityCentral (QC) is not yet accepting bug reports on XE2. All my tests were done on a trial version of Embarcadero® Delphi® XE2 Version 16.0.4256.43595 running Windows 7. Other reported issues don’t include the build version and are currently unconfirmed.
Update (Monday 5 Sept, 2011): Uwe Schuster reports that Embarcadero is aware that version 16.0/XE2 is not yet available in QC. It should be available in the next few days. For now it is okay to report it against version 15.1/XE, but please mention that it is actually a report for XE2.
1. Duplicated Controls: I just noticed that I have two copies of TScrollBar on the FM tabbed interface for selecting controls. As far as I can tell they are identical.
The scrollbar to the right of the rightmost circled component is the TSmallScrollBar. Update: I’ve now seen this in other controls. Update: I just noticed that the entire Shapes group has been duplicated.
2. TColorComboBox: Possible bug in TColorComboBox? The color selection is displaced, see below:
3. Compile/Run: When changing a style at design time it is necessary to do an explicit compile project (Ctrl-F9) in order for the style to be applied. Doing a normal ‘run’ doesn’t work
4. TMemo Behavior I think I noticed at least one difference in behavior between VCL TMemo and FM TMemo. Consider:
memo.lines := ‘Hello VCL’
This simply write the string ‘Hello VCL’ to the third line in the memo (0 indexed) and nothing more
memo.lines := ‘Hello FM’
This writes the line as in the VCL but then removes the first character from the next line. If I had the following:
and called memo.lines := ‘Hello FM’ I would get
I can’t imagine this is the expected behavior. This is the biggest issue so far and means I can’t continue with the project I was developing. See video below:
5. Documentation: Almost all the TMemo fields are undocumented. This actually applies to lot of the FM controls as far as I can tell. The help has good overview documentation however but lacks detail at the individual controls level.
6. Differences with VCL Designer: I’ve noticed a couple of differences between the FM and VCL designer. 1) No guides in the FM designer, I never realized until they werent’ there how much I used them. 2) Unable to select more than one control at a time. Correction to 2): When you select multiple controls, the controls are actually selected but there is no visual cue to indicate this. Control left/right arrow will move the entire group, also alignment works. Thanks to ‘Steve’ for pointing this out. The bug therefore resides in highlighting the selected group.
7. IDE Bug: Sometimes, but I haven’t been able to track down the exact circumstance, clicking on the Toggle Form/Unit F12 doesn’t work. To make it work I have to select another tab in the editor first, go back to the tab I was at then toggle the form/unit. Update: Others have reported the same issues, see fire monkey forum.
8. Layer3d Bug: This was reported earlier in the fireMonkey forum, not yet confirmed. Start firemonkey app with a Tform3d and add a TLayer3d now create a mousedown or mouseup event (on the 3dlayer). If you try to compile you will get a message that TMouseButton is unknown. It appears that the uses section does not have “System.UITypes” added to it automatically. This was found by playing around with Samples\FireMonkey\gui3d\gui3d.dpr. Original post at https://forums.embarcadero.com/thread.jspa?threadID=59931&tstart=0 by Ralph Wesseling
9. TOpenDialog Issue: This was reported earlier in the fireMonkey forum, not yet confirmed.Using the TOpenDialog component on Delphi XE2 (Firemonkey HD Application) in Windows 7 and I’ve been facing some troubles when using this component with the Multiselect property checked. On Windows 7 it shows the old style dialog (even if ofOldStyleDialog is not checked) and when debugging on OS X it crashes completely. This only happens when ofAllowMultiSelect is marked. I guess there is no way to work around this problem right now but to disable the feature, right?. Original post at: https://forums.embarcadero.com/thread.jspa?threadID=59961&tstart=0 by Ivan Juaez.
10. TPopupMenu: This was reported earlier in the fireMonkey forum, not yet confirmed. TPopupMenu has a serious bug – while the menu items themselves reflect the changed Scale property of the base layout, the overall size of the menu does not. (To get it scaling at all, the TPopupMenu needs to be parented to the layout, which is as it should be of course, if a bit weird from a VCL POV.). Original post at: https://forums.embarcadero.com/thread.jspa?threadID=60033&tstart=0 by Chris Rolliston
11. Align Property: This was reported earlier in the fireMonkey forum, not yet confirmed. The Align property appears to break when Scale is set, meaning the base layout has to be positioned and resized manually rather than just having its Align property to alClient. Original post at: https://forums.embarcadero.com/thread.jspa?threadID=60033&tstart=0 by Chris Rolliston
12. SetFocus on TMemo: Calling SetFocus on a FMX.TMemo selects all the text in the TMemo. This is not the same behavior as we find in the VCL TMemo. To get round this odd behavior, call Memo1.SetLength := 0 immediately after you’ve called SetFocus.
13. FMX Menu Loop Bug: Chri Rolliston on this blog described and provided a fix to a bug in the implementation of FMX menu loops on Windows. See his site for more details.
14. Bug in inline assembler for 64 bit: The following was reported by Nick Barnes. Finding major bugs in the inline assembler for 64 bit.
1. Get internal error if try to compile inline assembler without optimization turned on
2. JMP instructions, seemingly of any type, are not assembled causing code to drop through branches etc.
this routine shows both problems:
function Cmp (A, B: longint): integer; label equal, done; asm CMP A,B JE equal mov @Result, 1 jmp done equal: mov @Result, 0 done: nop end;
procedure TForm1.Button1Click (Sender: TObject); begin ShowMessage (IntToStr(Cmp(10,11))); end;
These seem to be fairly basic testing issues! I’m happy to be corrected on any errors I’m making.