コントロールを使用してTNumberBox(少なくとも Windows では、おそらく他のプラットフォームでも)、新しい値を入力し、ボタン ( TButton) を押して変更を保存すると、TNumberBox.Valueプロパティを読み取ると、編集が行われる前の元の値が返されます。 . コントロールがフォーカスを失うまで、この値にはアクセスできません。
変更を保存するために使用されるCanFocusボタンで、アプリのすべてのボタンとともに、そのプロパティを意図的に無効にしました。これは、私が使用しているスタイル (Jet) では、フォーカスされたボタンがひどく見えるためです (暗い灰色の背景に黒いテキスト)。言うまでもなく、モバイル プラットフォームでは、私の場合、フォーカスは実質的に役に立ちません。
CanFocusそれ以外の場合、この保存ボタンを無効にしないと、フォーカスが から適切に取り除かれTNumberBox、そのValueプロパティは問題ありません。ただし、CanFocus保存ボタンを無効にすると、このコントロールからフォーカスが外れることがないため、そのValueプロパティを読み取ると古い値が返されます。
Value保存ボタンを に変更せずに、プロパティが正しい新しい値を返すようにするにはどうすればよいCanFocusですか?
KillFocusOnReturnユーザーはオプションではない「Return」または「Enter」を押す必要があることを認識する必要があるため、有効にすることは役に立ちません。
ノート
イベントを利用した場合も、この問題は解決しませんTNumberBox.OnChangeTracking。新しい値を読み取れない場合、このイベントがどのように役立つかわかりません。