Autor Téma: TAdvOfficeRadioGroup a TAdvOfficeCheckGroup - Focused  (Přečteno 390 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6165
  • Karma: 44
    • Verze Delphi: W10 + D11

Mám použité udalosti OnClick.
  • Ak kliknem na komponent, tak sa majú spustiť
  • Ak sa spustia programovo (nespúšťam ich priamo ja), napr. nastavením ItemIndex, tak sa majú vynechať
Chcel som využiť vlastnosť Focused. To nefunguje. Podľa všetkého nezískavajú focus, aj keď je v oboch prípadoch vykreslený obdĺžnik.
Jedna z možností je použiť pomocnú premennú. Tomu by som sa rád vyhol, a použil nejakú vlastnosť komponentov.
Existuje nejaká možnosť?
Skúšal som toto:
Kód: Delphi [Vybrat]
  1. //  if not (frmprnDiscipline.ActiveControl = CheckGrp) then  //  Allways False
  2. //  if not CheckGrp.CheckBox.Focused then - not exists
  3.   if not CheckGrp.Focused then  //  Allways False
  4.     Exit;

W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6165
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:TAdvOfficeRadioGroup a TAdvOfficeCheckGroup - Focused
« Odpověď #1 kdy: 27-10-2021, 13:34:31 »
Hľadal som aj predtým, ale našiel som až teraz
Kód: Delphi [Vybrat]
  1.   for I := 0 to CheckGrp.Items.Count - 1 do
  2.   begin
  3.     Selected := TCheckBox(CheckGrp.Controls[I]).Focused;

W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Jan Fiala

  • Hrdina
  • ****
  • Příspěvků: 256
  • Karma: 3
    • Verze Delphi: 10.4.1
    • PSPad editor
Re:TAdvOfficeRadioGroup a TAdvOfficeCheckGroup - Focused
« Odpověď #2 kdy: 27-10-2021, 20:40:06 »
CheckGroup není control, který by získal focus. Focus má až konkrétní control uvnitř toho group boxu. Proto ti to vracelo False.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6165
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:TAdvOfficeRadioGroup a TAdvOfficeCheckGroup - Focused
« Odpověď #3 kdy: 28-10-2021, 09:41:46 »
CheckGroup není control, který by získal focus. Focus má až konkrétní control uvnitř toho group boxu. Proto ti to vracelo False.
To mi došlo rýchlo. Dlhšie trvalo, kým mi došlo že RadioButton/CheckBox sú samostatné komponenty uložené xxGroup. Ktoré sa vytvárajú pri napĺňaní Items. V podstate až po nájdení daného kódu.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.