Windows テーマの変更後、TListView の列の内容が正しくなくなります。CM_RECREATE メッセージに絞り込みました。これは、VCL がシステム テーマの変更に応じて TListView のウィンドウ ハンドルを再作成するときです。以下は、問題を示すスクリーンショットです。
元のリスト ビューの状態
最後の列が最初の位置に移動されました。すべて順調。
Windows テーマが変更された後、列の位置は保持されますが、内容は正しくなくなります。
現在、カスタム CM_RECREATEWND ハンドラーで列を手動で再作成するだけで問題を解決しています。バグですか?列を再作成するのは良い解決策ですか、それとももっと良い方法がありますか?
Delphi10 を使用していますが、以前のバージョンでも同じ動作が見られました。