Autor Téma: AdvEdit.OnChange  (Přečteno 160 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
AdvEdit.OnChange
« kdy: 03-12-2019, 18:19:06 »

Potrebujem upraviť hodnoty v iných AdvEdit (nový stav a rozdiel) na základe zmeny hodnoty v MyAdvEdit.
MyAdvEdit - presnosť je 2
Problém je v tom, že udalosť OnChange sa volá dvakrát. Prvý krát pri zmene údaju, druhý krát pri formátovaní. To je nežiaduce. Ja to neviem rozlíšiť.
Pomocné premenné mi nepomohli. Pri OnChange vyvolanom formátovaním obsahujú pôvodné hodnoty a nie aktualizované. Inú vhodnú udalosť som nenašiel.
Ako sa to dá vyriešiť?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 534
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:AdvEdit.OnChange
« Odpověď #1 kdy: 04-12-2019, 09:38:53 »

Potrebujem upraviť hodnoty v iných AdvEdit (nový stav a rozdiel) na základe zmeny hodnoty v MyAdvEdit.
MyAdvEdit - presnosť je 2
Problém je v tom, že udalosť OnChange sa volá dvakrát. Prvý krát pri zmene údaju, druhý krát pri formátovaní. To je nežiaduce. Ja to neviem rozlíšiť.
Pomocné premenné mi nepomohli. Pri OnChange vyvolanom formátovaním obsahujú pôvodné hodnoty a nie aktualizované. Inú vhodnú udalosť som nenašiel.
Ako sa to dá vyriešiť?
AdvEdit, nemá aj ten náhodou príznak Modified? Vzhľadom na to, že dochádza k druhotnej modifikácii.. podobne ako u AdvMemo so zvýrazňovačom kódu. Preto by mal mať niečo podobné. Alebo či by nepomohla nejaká iná udalosť, napr. OnStatusChange ..

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:AdvEdit.OnChange
« Odpověď #2 kdy: 04-12-2019, 11:58:02 »
Má Modified. Ale ako by som to využil? Predpokladám, že akonáhle urobím najmenšiu zmenu, tak už stále bude True. No, pozriem sa na to. Udalosti sú v prílohe.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:AdvEdit.OnChange
« Odpověď #3 kdy: 04-12-2019, 12:05:40 »
Tak som si to otestoval v OnChange a nie je to použiteľné.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 534
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:AdvEdit.OnChange
« Odpověď #4 kdy: 04-12-2019, 18:12:12 »
Zdá sa, že podobné problémy už niekto reklamoval na fóre TMS.
https://www.tmssoftware.com/site/forum/forum_posts.asp?TID=2484&title=adveditOnchange-fired-2x-when-delete-the-text
Bruno Fierens tvrdil, že to opravia v najbližšej verzii.
Lenže to bolo v roku 2013. Ak to pretrváva, tak sa mu to nepodarilo, alebo to znovu poorali.
Prepošli mu info, podľa vzoru z linku.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:AdvEdit.OnChange
« Odpověď #5 kdy: 04-12-2019, 18:13:46 »
Poslal som to. Zároveň tu aj tam. S menšími výčitkami svedomia :) 
V tom odkaze je trocha iná problematika. Zaoberali sa tým aj na SO.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 534
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:AdvEdit.OnChange
« Odpověď #6 kdy: 04-12-2019, 18:28:53 »
Má Modified.
..
akonáhle urobím najmenšiu zmenu, tak už stále bude True. No, pozriem sa na to. Udalosti sú v prílohe.
(Za obrázkom-mimo rozsah, sú aj ďalšie udalosti.)
Modified si môžeš prípadne vhodne prepisovať, ak treba.
Navyše niektoré z tých dvoch volaní, je asi vždy prvé. Čo tak druhé, alebo prvé odignorovať?
Podrobiť analýze a s využitím iných properties nejako o..babrať? Napríklad zistiť, či by nepomohla súčinnosť aj s OnStatusChange ?
Asi to je práca navyše, ale zatiaľ..
Mimochdom tušim včera aktualizovali VCL UI Pack. Takže nová verzia nebude hneď.
« Poslední změna: 04-12-2019, 18:30:44 od miroB »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:AdvEdit.OnChange
« Odpověď #7 kdy: 04-12-2019, 19:14:35 »
Citace
(Za obrázkom-mimo rozsah, sú aj ďalšie udalosti.)
Nie sú. Dal som tu všetky!
Citace
Modified si môžeš prípadne vhodne prepisovať, ak treba.
Navyše niektoré z tých dvoch volaní, je asi vždy prvé. Čo tak druhé, alebo prvé odignorovať?
Prvé je reakcia na užívateľa, druhé je časovač, alebo ho predbehne užívateľ. Ako ich mám ignorovať, keď hodnota premenných v udalosti sa mení podľa toho, kto ju volá. Jednoducho napísané premenná má dve hodnoty.
Citace
Podrobiť analýze a s využitím iných properties nejako o..babrať? Napríklad zistiť, či by nepomohla súčinnosť aj s OnStatusChange ?
Asi to je práca navyše, ale zatiaľ..
Na to sa môžem pozrieť.

Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4575
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:AdvEdit.OnChange
« Odpověď #8 kdy: 09-12-2019, 15:39:37 »
Poslal TMS formulár a problém vyriešili. Bude to v najbližšom update.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.