実行時にツールバーのサイズを変更したり、さまざまな画面解像度に対応したい場合があります。高解像度の画面でツールバーをサイジングする際のガイダンスをご紹介します。
ツールバーはTControlBarにあり、ツールバーとコントロールバーは自動サイズ設定になっています。私は4つの異なるサイズのTImagelists 16 * 16から48 * 48をツールバーに割り当てることができます。私が見つけているのは、大きなイメージャリストを割り当てると、コントロールバーとツールバーの高さが高くなりますが、小さなイメージリストを選択すると縮小しないということです。私はまた、ツールバーは、より広い画像に対応するために長さが伸びないことも発見しました。これは予想される動作ですか?
デザインタイムに私の最大のイメージリスト48 * 48が実際に32 * 32のイメージをロードしていることがわかりました。すべての画像は、64 * 64,48 * 48 ...から16 * 16までの画像を保持する一連のアイコンから来ています。画像リストに保存できる画像のサイズに制限がありますか?各画像リストは36個の画像を保持する。
procedure TfmIDEMain.SetIconSize(Large: Boolean);
begin
if Large then
case screen.PixelsPerInch of
96..111: ilTBIcons := ilMedIcons; // Large Icons - Low res
112..120: ilTBIcons := ilLargeIcons; // Large Icons - Hi Med
121..144: ilTBIcons := ilExLargeIcons; // Large Icons - hi res
end
else
case screen.PixelsPerInch of
96..111: ilTBIcons := ilSmallIcons; // Small Icons - Low res
112..120: ilTBIcons := ilMedIcons; // Small Icons - Med res
121..144: ilTBIcons := ilLargeIcons; // Small Icons - hi res
end;
tbFiles.Images := ilTBIcons;
tbEdit.Images := ilTBIcons;
tbBookmarks.Images := ilTBIcons;
tbCodeFolding.Images := ilTBIcons;
end;
上記のルーチンは、画面の解像度と "大"ブール値に従って画像を割り当てます。小さな画像サイズにリサイズするためにツールバーとコントロールバーを得るために何かすべきことはありますか?すでに自分を発見したとして、彼らはまだフィットしない場合
デルファイのバージョンを指定すると役立つことがあります。 –
Delphi Berlinを使用しています。10.1 –
DPIスイッチを手動で操作するか、VCLに自動的に行わせますか?あなたはいつSetIconSizeを呼び出しますか? –