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