FireMonkey - заобиколно решение за липсващото събитие OnSetValue в TPopupColumn

Промените в TPopupColumn (TGrid) не задействат събитието OnSetValue, така че не мога да получа стойността от него, зададена от потребителя (GetValue работи добре). Проблемът вече беше докладван в QualityCentral: http://qc.embarcadero.com/wc/qcmain.aspx/qcmain.aspx?d=113448

Някой от вас намирал ли е заобиколно решение? Има ли друг начин да получите стойността от TPopupColumn, за да я комбинирате с например събитие OnMouseDown? Опитах с множество свойства на TPopupColumn, но без ефект.

Ще оценя всякакви предложения, тъй като наистина бих искал да запазя TPopupColumn в моя проект.

Използвам Delphi XE5 с актуализация 1.

======================== РЕШЕНИЕ========================== ==

Въз основа на ръководството, публикувано от Майк Сътън, в крайна сметка добавям следния ред към функцията TPopupColumn.CreateCellControl във файла FMX.Grid.pas.

TPopupCell(Result).OnChange := DoTextChanged;

След това запазих копие на файла и го добавих към моя проект, което реши проблема.


person Roman    schedule 18.11.2013    source източник
comment
Не мога да повярвам, че EMBT все още не са поправили това!   -  person nolaspeaker    schedule 03.10.2015


Отговори (1)


Създаването на колони с мрежа е доста просто. Предлагам ви да погледнете изходния код във FMX.Grids, да го копирате в своя собствен клас и да поправите повредените битове.

Разгледайте и http://monkeystyler.com/guide/Custom-Grid-Columns

person Mike Sutton    schedule 20.11.2013