Autor Téma: Nesprávny vzhľad komponentov  (Přečteno 113 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6671
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Nesprávny vzhľad komponentov
« kdy: 04-07-2022, 13:40:40 »

Pri vytváraní formulára vytváram podformuláre a tam pomocou funkcie
Kód: Delphi [Vybrat]
  1. procedure TjstDBNavigator.DoEnableCtrls(const ACont: TControl; const AEnabled: Boolean);
  2. begin
  3.   if (ACont = nil) then Exit;
  4.   ACont.Enabled := AEnabled;
  5.   if ACont is TWinControl then
  6.     for var I := 0 to TWinControl(ACont).ControlCount -1 do
  7.         DoEnableCtrls(TWinControl(ACont).Controls[I], AEnabled);
  8. end;
nastavím všetko na False. Mám stav na obrázku 1. Nepomohlo ani opätovné nastavenie na False vo FormShow. Počas behu aplikácie to už pracuje podľa očakávania. Viď obrázky. Je požadovaný stav na druhom obrázku.
Čo je príčinou tohto stavu? Dá sa to nejako vyriešiť?
W10 64b, Delphi 11.1, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6671
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Nesprávny vzhľad komponentov
« Odpověď #1 kdy: 04-07-2022, 15:17:57 »
Takto mi to skoro funguje
Kód: Delphi [Vybrat]
  1.     TBasicFunction.EnableCtrls(FCustomObjects[I].EditPanel, True);
  2.     TBasicFunction.EnableCtrls(FCustomObjects[I].EditPanel, False);
Nezaberá to na TAdvDBLookupComboBox. Ostatné ComboBox-y (komponenty) som neoveroval.
Nepáči sa mi to, ale je to lepšie ako nič. Sú to navyše dva "zbytočné" prechody cez EditPanel.
W10 64b, Delphi 11.1, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6671
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Nesprávny vzhľad komponentov
« Odpověď #2 kdy: 05-07-2022, 08:30:15 »
Dosiahol som úspech:
  • funkciu som volal v komponente v Loaded
  • volanie som presunul do CreateWnd. To sa priamo na výsledku neprejavilo
  • teraz som jej volanie v komponente pri vytváraní komponentu (Loaded, CreateWnd) úplne vyhodil
  • teraz mi stačí jediné volanie s False
W10 64b, Delphi 11.1, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.