Autor Téma: TabControl - pohyb mezi edity tabulátorem  (Přečteno 1932 krát)

Offline chaloup

  • Mladík
  • **
  • Příspěvků: 77
  • Karma: 9
    • Verze Delphi: Delphi 10.1
TabControl - pohyb mezi edity tabulátorem
« kdy: 07-12-2013, 11:57:07 »
narazil jsem teď na podivné chování FMX, když udělám jednoduchou aplikaci, kde mám ve formu dva TEdit JDE mezi nima přepínat pomocí klávesy TAB, jak je na Windows normální
jestliže udělám to stejné a mezi TEdity přidám TTabControl (dva edity na záložce TTabControl), přestane fungovat přepínání přes TAB, koukal jsem do FMX a připadá mi, že TFmxObject.GetTabOrderList (který se volá v TCommonCustomForm.AdvanceTabFocus) nefunguje dobře, nevrací obsah TabItemu vrátí pouze 3 objekty - TTabControl, TTabControlContent a TTabItem, ty dva edity chybí, když vyhodím TTabControl tak ty edity v tom TInterfaceList jsou

co jsem koukal do QC našel jsem tohle:
http://qc.embarcadero.com/wc/qcmain.aspx?d=117380
připadá mi že to je problém na který jsem narazil

Offline chaloup

  • Mladík
  • **
  • Příspěvků: 77
  • Karma: 9
    • Verze Delphi: Delphi 10.1
Re:TabControl - pohyb mezi edity tabulátorem
« Odpověď #1 kdy: 09-01-2014, 10:21:59 »
Takže podle supportu o tom ví (že ty "tabulátory" v fmx moc nefungují), údajně to v další major verzi bude přepracovaný. Ve stávajících verzích se to dá obejít následovně:

Kód: Delphi [Vybrat]
  1. type
  2.   TOpenObject = class(TFmxObject);
  3.  
  4. ...
  5.  
  6. procedure AddTabControls(const aForm: TCommonCustomForm);
  7. var
  8.   i: integer;
  9.   ChildFMXControl: TFmxObject;
  10. begin
  11.   if aForm <> nil then
  12.     for i := 0 to aForm.ComponentCount - 1 do
  13.       if aForm.Components[i] is TFmxObject then
  14.       begin
  15.         ChildFMXControl := TFmxObject(aForm.Components[i]);
  16.         if (ChildFMXControl.Parent <> nil) and ChildFMXControl.Parent.ClassNameIs('TTabItemContent') then
  17.           TOpenObject(aForm).AddToTabList(ChildFMXControl);
  18.       end;
  19. end;
  20.  
  21. procedure TForm1.FormCreate(Sender: TObject);
  22. begin
  23.   AddTabControls(Self);
  24. end;
  25.  
  26.  

Offline chaloup

  • Mladík
  • **
  • Příspěvků: 77
  • Karma: 9
    • Verze Delphi: Delphi 10.1
Re:TabControl - pohyb mezi edity tabulátorem
« Odpověď #2 kdy: 26-04-2014, 21:28:53 »
Zdá se, že to je v XE6 opravený.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: