I am trying to set the tab order for fields that are in frames within the main form, however, the edit boxes are never activated. The only time I can activate the top edit field is when I use the SetFocus function. What am I missing?
Relevant code
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Frame31->Edit1->TabOrder = 0;
Frame21->Rectangle1->TabOrder = 1;
Frame22->Rectangle1->TabOrder = 2;
Button1->TabOrder = 3;
}
App screenshot with labels
Component Hierarchy
Reference
http://docwiki.embarcadero.com/Libraries/Rio/en/FMX.Controls.TControl.TabOrder
Edit
Updated question to reflect design of application; included component hierarchy image and updated labels in application screenshot.


The
TabOrderworks per parent. The form is the parent of the frames and the button. So, setAll
TEditcontrols have separate parents, and can therefore be left with the defaultIf there would have been more than one
TEdit(or other controls) on any of the frames, then theTabOrderbetween those controls would have to be specified.Edit
I must appologize for the
TabStop = Falsefor the frames. It has no effect in this scenario. So just leave them as the defaultTrueI can confirm, that when you have a
TRectangleas parent to theTEdit, then theTEditwill not be tabbed to. I can not explain why this is so, and I did not immediately find anything about that on Embarcaderos quality reporting system.Perhaps you can remove the rectangles, alternatively rearrange the
TEditto be a child of theTFramedirectly and just place it over theTRectangleso it visually looks like it would be a part of theTRectangle. The downside of this would be that you could e.g. not move theTEditwith theTRectangle.