런타임시 내 도구 모음의 크기를 변경하고 다른 화면 해상도를 수용하려고합니다.고해상도 화면의 도구 모음 크기 조정에 대한 지침이 필요합니다.
내 툴바는 툴바 및 컨트롤 막대가 자동 크기 조정으로 설정된 TControlBar에 있습니다. 4 개의 TImagelists 16 * 16 ~ 48 * 48 크기의 툴바에 할당 할 수 있습니다. 내가 더 중대한 Imagelist를 지정할 때 컨트롤 바 (controlbar)와 툴바 (toolbars)의 높이가 증가하지만 작은 imagelist를 선택할 때 축소되지 않는다는 것을 알게되었습니다. 나는 또한 툴바가 더 넓은 이미지를 수용하기 위해 길이가 확장되지 않는다는 것을 발견했다. 이 예상되는 동작입니까?
디자인 타임에 가장 큰 이미지 디자이너 인 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를 호출합니까? –