10 SeattleでVCLカスタムスタイル適用時、MaskEditのバルーンの文字表示が欠ける

提供: Support
移動先: 案内検索

問題

VCLコンポーネントのTEditおよびTMaskEditのPasswordCharを任意の文字列に設定し、VCLのカスタムスタイルを適用したアプリケーションを実行してエディットボックス内で文字列を選択してCtrl+Cを実行すると、以下の図のようにバルーンヒントの表示が欠ける症状が発生します。

Thumb03000004ujpn.png

解決

こちらの症状は、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ユニットを組み込んでアプリケーションを実行すると、以下の図のようにバルーンヒントが正しく表示されます。

Thumb03000005ujpn.png