Autor Téma: FVst.FocusedNode mám vždy nil, aj keď to nie je pravda  (Přečteno 198 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5140
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Kód: Delphi [Vybrat]
  1. Node := FVst.GetFirst;  // Kvôli testovaniu
  2.   FVst.FocusedNode := Node;  // Node nie je nil. Je to overené
  3.   if not Assigned(FVst.FocusedNode) or (oGlobalVar.ActualObject.CustomDB.Table.State in [dsEdit, dsInsert]) then
  4.     Exit;
Kód je presne tak ako som ho tu uverejnil.
ShowMessage(IntToStr(FVst.SelectedCount)+'/'+IntToStr(FVst.TotalCount)); // mi vypíše 1/1
Kde mám hľadať problém?
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2666
  • Karma: 104
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:FVst.FocusedNode mám vždy nil, aj keď to nie je pravda
« Odpověď #1 kdy: 09-12-2019, 15:11:01 »
Kód: Delphi [Vybrat]
  1.    
  2.    oTree.Selected[oNode] := True;
  3.    oTree.FocusedNode := oNode;
  4.  
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5140
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:FVst.FocusedNode mám vždy nil, aj keď to nie je pravda
« Odpověď #2 kdy: 09-12-2019, 15:46:03 »
Určite to mám tak nastavené.
Ale vyskúšal som to a stále je nil. Pre istotu som tam pridal riadok "FVst.ClearSelection;"
Skúšal som aj Invalidate a InvalidateNode.
« Poslední změna: 09-12-2019, 15:47:47 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1030
  • Karma: 47
    • Verze Delphi: 10.3
Re:FVst.FocusedNode mám vždy nil, aj keď to nie je pravda
« Odpověď #3 kdy: 09-12-2019, 18:01:58 »
Nevrací GetFirst nějaký Node, na který nejde dát Focus? (root apod.)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5140
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:FVst.FocusedNode mám vždy nil, aj keď to nie je pravda
« Odpověď #4 kdy: 09-12-2019, 18:27:10 »
Už som na to prišiel
Kód: Delphi [Vybrat]
  1. procedure vstFocusChanging(Sender: TBaseVirtualTree; OldNode, NewNode:
  2.   PVirtualNode; OldColumn, NewColumn: TColumnIndex; var Allowed: Boolean);
  3. begin
  4.   FNodeData := Sender.GetNodeData(NewNode);
  5.   Allowed := FNodeData.Integers[Actual] = 1;
Nabehne to v okamihu ak je Allowed = False

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