Autor Téma: VirtualStrintTree - zmiznutie textu pri prechode myšou  (Přečteno 229 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Kód: Delphi [Vybrat]
  1. procedure TfrmsubPart.jstvstTblPartBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  2.   Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
  3. const
  4.   IsOld = $007DDFFF;
  5. var
  6.   NodeData: PtblPartData;
  7. begin
  8.   NodeData := Sender.GetNodeData(Node);
  9.   if not NodeData.IsNew then
  10.   begin
  11.     TargetCanvas.Brush.Color := IsOld;
  12.     TargetCanvas.FillRect(CellRect);
  13.   end;
  14. end;
Text mi zmizne len pre riadky, kde som zmenil pozadie - not IsNew. Neviem to napraviť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #1 kdy: 05-05-2019, 11:43:14 »
Ono sa mi to akosi stále viac bortí. Už mi text mizne vždy. VST sa celkove správa divne. Kliknem na uzol a OnChange nezbehne.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #2 kdy: 05-05-2019, 11:50:58 »
Už so to našiel, ale trocha tomu nerozumiem
Kód: Delphi [Vybrat]
  1.   FVst.BeginUpdate;
  2.   FVstChangeEvent := FVst.OnChange;
  3.   FVst.OnChange := nil;
  4.   FVst.Clear;
  5.   FVst.ClearSelection;
  6.   FVst.BeginUpdate;  // Omylom ešte raz
  7.  
Mal som tam 2 x FVst.BeginUpdate. Ja žijem v tom, že je to obyčajný prepínač. Ale zjavne nie. Ako keby sa vytváral ich zoznam a ja som likvidoval len jeden.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #3 kdy: 05-05-2019, 14:11:38 »
Mimochodem, vis ze bys mel kontrolovat rezim kresleni CellPaintMode a kreslit jen pri cpmPaint?
Celkom isto viem, že neviem o čom píšeš ;D
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #4 kdy: 05-05-2019, 15:01:05 »
Citace
A proc vlastne nepouzijes pro barveni "radku" udalost OnBeforeItemErase? Ta je pro tento ucel primo popsana; manual VTV zminuje:
Lebo už dávno som nečítal návod. A nie je písaný najšťastnejšie. Aby som to zistil niečo také, tak by som si musel prečítať všetky udalosti. Vieš čo by som si pamätal ;)  Samotný názov navádza myšlienky iným smerom. Ja predsa nič nemažem :) , ani nepotrebujem na takú udalosť niečo naviazať.
Samozrejme, že si to zmením.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #5 kdy: 05-05-2019, 18:31:19 »
V takýchto prípadoch sa bez try ... finally nehnem. Len tu som to kvôli stručnosti nedal.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #6 kdy: 05-05-2019, 19:15:33 »
Dá sa v OnBeforeItemErase nejako pri zobrazení stromu dosiahnuť, aby bol podfarbený len text a nie celý riadok? Mne sa nepáči.
Pri OnBeforeCellPaint som to mal.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:VirtualStrintTree - zmiznutie textu pri prechode myšou
« Odpověď #7 kdy: 05-05-2019, 19:19:59 »
To try ... finally mám správne. BeginUpdate a EndUpdate s FVst.OnChange := FVstChangeEvent; sú volané v rámci samostatných funkcií. A tie volania sú obalené jedným try ... finally. Čo tu samozrejme nevidieť a bolo by nezmyslom dávať tu celý kód, keď sa netýka tej chyby.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.