10 SeattleでVCLカスタムスタイル適用時、MaskEditのバルーンの文字表示が欠ける
問題
VCLコンポーネントのTEditおよびTMaskEditのPasswordCharを任意の文字列に設定し、VCLのカスタムスタイルを適用したアプリケーションを実行してエディットボックス内で文字列を選択してCtrl+Cを実行すると、以下の図のようにバルーンヒントの表示が欠ける症状が発生します。
解決
こちらの症状は、10.1 Berinで修正済みです。10 Seattleで解決が必要な場合は、Vcl.SysStylesユニットのTSysTooltipsStyleHook.WMPaintメソッドを以下のように修正してください。
修正前:
procedure TSysTooltipsStyleHook.WMPaint(var Message: TMessage);
begin
CallDefaultProc(Message);
inherited;
end;
修正後:
procedure TSysTooltipsStyleHook.WMPaint(var Message: TMessage);
begin
CallDefaultProc(Message);
if (GetWindowLong(Handle, GWL_STYLE) and TTS_BALLOON) = TTS_BALLOON then
Handled := True
else
inherited;
end;
上記の箇所を修正後、Vcl.SysStyles.pasファイルを自身のプロジェクトに組み込んでください。修正したVcl.SysStylesユニットを組み込んでアプリケーションを実行すると、以下の図のようにバルーンヒントが正しく表示されます。