Autor Téma: Začátečnický problém s FMX - modální formulář...  (Přečteno 663 krát)

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1060
  • Karma: 47
    • Verze Delphi: 10.3
Ahoj,

musím udělat aplikaci pro Android. Podotýkám, že k FMX jsem moc nepřilnul (IDE to asi cítí a dělá naschvály - Ctrl+Ins, Shift+Ins -> Access violation...).

Potřebuji zobrazit okno s nastavením aplikace. Ve VCL ve Windows bych prostě jen zavolal ShowModal. Pro FMX píší v helpu, že se na Androidu nemá ShowModal používat. Jaká je tam tedy správný postup, aby uživatel po zobrazení formuláře musel práci na tom formuláři dokončit dřív, než se vrátí do hlavního okna aplikace? (Při testování tu aplikaci kompiluju pro Win32, tak by bylo fajn, kdyby ten samý způsob fungoval i ve Windows.)

Díky,

Karel

« Poslední změna: 02-02-2020, 19:53:16 od vandrovnik »

Offline tomak586

  • Nováček
  • *
  • Příspěvků: 20
  • Karma: 1
Re:Začátečnický problém s FMX - modální formulář...
« Odpověď #1 kdy: 02-02-2020, 19:59:45 »
Ja zobrazuji formulare pomoci show.
A nebo kopiruji do layoutu, ktery zobrazim, pripadne animuji.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2697
  • Karma: 104
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Začátečnický problém s FMX - modální formulář...
« Odpověď #2 kdy: 02-02-2020, 22:44:11 »
V podstate das Show a predas si kde to ma pokracovat, nejlepe anonymni metodou. V GetIt je celkem pekny sample (sekce sample projects / Bottom navigation template).
Kód: Delphi [Vybrat]
  1.      ShowBasicForm().RunDialog(
  2.         procedure()
  3.         begin
  4.         end
  5.  
kde

Kód: Delphi [Vybrat]
  1. function TfrmBasic.RunDialog(const SuccProc: TProc): string;
  2. begin
  3.   FSuccProc:= SuccProc;
  4.   {$IF DEFINED(Win64) or DEFINED(Win32)}
  5.   ShowModal;
  6.   {$ELSE}
  7.   Self.Show;
  8.   {$ENDIF}
  9. end;
  10.  
  11. procedure TfrmBasic.FormClose(Sender: TObject; var Action: TCloseAction);
  12. begin
  13.   if Assigned(FSuccProc) then
  14.   begin
  15.     FSuccProc();
  16.     FSuccProc:= nil;
  17.   end;
  18. end;
  19.  

Jde o to, ze Android nesnasi blokuji okna a ty by ti sestrelil, tudiz zobrazis okno pres screen a na OK si predas kam ma pokravat. Projdi si ukazky v GetIt.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2697
  • Karma: 104
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Začátečnický problém s FMX - modální formulář...
« Odpověď #3 kdy: 02-02-2020, 22:45:51 »
Případně je hodně popularní https://github.com/andrea-magni/TFrameStand
Embarcadero MVP - Czech republic

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1060
  • Karma: 47
    • Verze Delphi: 10.3
Re:Začátečnický problém s FMX - modální formulář...
« Odpověď #4 kdy: 03-02-2020, 12:53:48 »
Díky, udělal jsem toho společného předka a upravil zobrazení.