4

TPopupColumn (TGrid) の変更は OnSetValue イベントをトリガーしないため、ユーザーが設定した値を取得できません (GetValue は正常に動作します)。この問題はすでに QualityCentral で報告されています: http://qc.embarcadero.com/wc/qcmain.aspx/qcmain.aspx?d=113448

回避策を見つけた人はいますか?たとえば OnMouseDown イベントと組み合わせるために TPopupColumn から値を取得する他の方法はありますか? TPopupColumn の多数のプロパティを試してみましたが、効果がありませんでした。

プロジェクトで TPopupColumn を保持したいので、何か提案をいただければ幸いです。

Update 1 で Delphi XE5 を使用しています。

========================ソリューション======================== ==

Mike Sutton が投稿したガイドに基づいて、FMX.Grid.pas ファイルの TPopupColumn.CreateCellControl 関数に次の行を追加します。

TPopupCell(Result).OnChange := DoTextChanged;

ファイルのコピーを保存し、プロジェクトに追加して問題を解決しました。

4

1 に答える 1

1

グリッド列の作成は非常に簡単です。FMX.Grids のソースを見て、それを独自のクラスにコピーし、壊れた部分を修正することをお勧めします。

http://monkeystyler.com/guide/Custom-Grid-Columnsもご覧ください。

于 2013-11-20T20:30:56.090 に答える