Forum Delphi.cz

Delphi => Mobilní vývoj => Téma založeno: raul 06-08-2019, 10:55:59

Název: Show/Hide tlacitek v toolbar
Přispěvatel: raul 06-08-2019, 10:55:59
Zdarec opet :)

Mam Toolbar se 4 tlacitky, ktera se maji zobrazovat a skryvat dle zalozky v TabControlu. Bohuzel, jakmile je schovam, uz je nezobrazim (resp asi jakmile je poprve prepnu). Vtipne je, ze v ruznych castech laborace jsem dosel k tomu, ze se tlacitka neschovavaly, ale prestal na nich fungovat onclick apod.
Ted jsem ve stavu, jak pisi - tj, jakmile schovam, uz nezobrazim. Je treba nejaky invalidate ci neco podobneho ?

Jo a kdyz apku obcas minimalizuji, a opet zobrazim, nekdy se objevi vsechny 4 (jako v navrhu). Nasledujici metodu poustim ve form create a posleze v udalostech menicich tab rucne.  Komenty jsou tam jen pro ladeni, cil je, aby to chodilo komplet bez nich.


procedure TForm1.UpdateHdrButtons;
begin
   if Tabs.ActiveTab = Detail then
   begin
//      btnMenu.Visible := false;
      btnBack.Visible := true;
      btnDone.Visible := true;
//      btnAdd.Visible := false;
   end else
   begin
//      btnMenu.Visible := true;
      btnBack.Visible := false;
      btnDone.Visible := false;
//      btnAdd.Visible := true;
   end;
end;


Diky
Název: Re:Show/Hide tlacitek v toolbar
Přispěvatel: Stanislav Hruška 06-08-2019, 21:48:23
Mobilné aplikácie nerobím, ale to nevadí.
V takých prípadoch ako si tu popísal Ty, používam btnXXX.Enabled := T/F.
Tebou uvedený kód by som upravil nasledovne
Kód: [Vybrat]

procedure TForm1.UpdateHdrButtons;
begin
//  btnMenu.Visible := not Tabs.ActiveTab = Detail;
  btnBack.Visible := Tabs.ActiveTab = Detail;
  btnDone.Visible := Tabs.ActiveTab = Detail;
//  btnAdd.Visible := not Tabs.ActiveTab = Detail;
.
alebo
.
procedure TForm1.UpdateHdrButtons;
var
  bVisible: Boolean;
begin
  bVisible := Tabs.ActiveTab = Detail;
//  btnMenu.Visible := not bVisible;
  btnBack.Visible := bVisible;
  btnDone.Visible := bVisible;
//  btnAdd.Visible := bVisible;
Název: Re:Show/Hide tlacitek v toolbar
Přispěvatel: tomak586 07-08-2019, 01:16:46
Ahoj, jak jsem ti psal že použivám layouty, tak ja dávám visible celým layoutum. Tak jsem zkusil rychlou apku kde mam Toolbar a TabControl a tri tlacitka a vse mi funguje jak na androidu 8 tak na iPhone.

  if TabControl1.ActiveTab = TabItem1 then
  begin
    Button1.Visible := False;
    Button2.Visible := False;
    Button3.Visible := True;
  end
  else
  begin
    Button1.Visible := True;
    Button2.Visible := True;
    Button3.Visible := False;
  end;

Jediný co mě napadá je jak mas umistěný ten Toolbar, jestli ti ho něco nepřekrývá.
Název: Re:Show/Hide tlacitek v toolbar
Přispěvatel: raul 07-08-2019, 09:13:14
Nakonec jsem to udelal taky pres tabcontrol - prepinam dva taby kazdy se dvema ikonkami. Jednak mi ten kod s visible tlacitek trval dlouho a druhak jsem to proste nerozbehal. Pak - potom co jsem to mel komplet predelany - jsem si vsiml, ze na toolbaru bylo controltype platform, ale vsude jinde je styled. Tak to mozna bylo tim, nevim. Tak ci tak, obycejne prehozeni viditelnosti trvalo docela dlouho (cca 1/2 - 1s), kdezto prave prepinani tabu mi chodi pekne rychle, takze radeji takto. (Jinak testuju na Xiaomi Mi 9 (6/128), pripadne pak na starym sony z5 dual, ale tam o hodne mene, trva upload :) )