RAD Studio 11でTComboBox.DropDownWidthプロパティがスケーリングされない
対象となる製品
- RAD Studio 11.0 Alexandria
- C++Builder 11.0 Alexandria
- Delphi 11.0 Alexandria
問題
RAD Studio 11では、TComboBoxにドロップダウンの幅を指定するDropDownWidthプロパティが追加されました。
しかし、ChangeScaleメソッド等でスケーリングを行ってもDropDownWidthプロパティで指定したサイズは、正常にスケーリングされません。
解決
本症状は、RAD Studio 11.1で修正済みです。
RAD Studio 11.0でこの問題を解決するには、<製品のインストールフォルダ>¥source¥vcl¥Vcl.StdCtrls.pasを自身のプロジェクトフォルダへコピーし、以下の箇所を修正してください。
Vcl.StdCtrls.pas
修正前:
procedure TCustomComboBox.ChangeScale(M, D: Integer; isDpiChange: Boolean);
begin
FOldHeight := Height;
inherited;
end;
修正後:
procedure TCustomComboBox.ChangeScale(M, D: Integer; isDpiChange: Boolean);
begin
FOldHeight := Height;
if FDropDownWidth <> 0 then
DropDownWidth := MulDiv(FDropDownWidth, M, D);
inherited;
end;
修正したVcl.StdCtrls.pasの適用方法は、以下のドキュメントを参照してください。