2017-12-08 2 views
2

런타임시 내 도구 모음의 크기를 변경하고 다른 화면 해상도를 수용하려고합니다.고해상도 화면의 도구 모음 크기 조정에 대한 지침이 필요합니다.

내 툴바는 툴바 및 컨트롤 막대가 자동 크기 조정으로 설정된 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; 

위의 루틴은 화면 해상도와 "큰"부울에 따라 이미지를 지정합니다. 툴바와 컨트롤 바를 작은 이미지 크기로 리사이즈하기 위해 내가해야 할 일이 있습니까? 이미 자신을 발견으로 이미 맞지 않으면

+0

델파이 버전을 지정하는 것이 도움이 될 수 있습니다. –

+0

Delphi Berlin을 사용하고 있습니다. 10.1 –

+0

DPI 스위치를 수동으로 처리합니까, 아니면 VCL이 자동으로 처리하도록 하시겠습니까? 언제 SetIconSize를 호출합니까? –

답변

0

툴바컨트롤 막대 자체는 의 ImageList 크기로 조정합니다. 그렇기 때문에 작은 것을 할당 할 때 축소하지 않는 이유는 Imagelist입니다. 당신이 거짓와 진정한로 설정하여 크기 조정를 실행할 때 그 폭을 조정해야 심지어 도구 모음. 컨트롤 DPI가 변경에 반응 할 때

이미지리스트 크기에이 반응에 사용되는 ScaleBy 기능에 영향을 미친다. Imagelist을 지정하면 도구 모음이 확대되고 다음 ScaleBy가 잘못된 기본 크기를 사용하게됩니다. DPI가 툴바을 감소시킬 때 반올림 한 다른 방법은 큰 Imagelist이 여전히 할당되어있는 한 이에 따라 크기를 줄일 수 없습니다.

  • 이 더 큰 크기
  • 작은 의 ImageList로 제어를 확장 한 후 할당해야 더 큰 의 ImageList 할당해야합니다

    이 오른쪽 순서로 의 ImageList을 할당 할 필요 컨트롤을 더 작은 크기로 조절하기 전에

+0

DPI는 응용 프로그램이 시작될 때 결정되며 응용 프로그램이 도구 모음 이미지의 크기 만 실행하는 동안 DPI를 변경하려고하지 않습니다.컨트롤을 더 작은 크기로 조절하면 무엇을 의미합니까? 나는 작은 높이 목록과 컨트롤 높이를 더 작은 높이로 재설정하려고 시도했다. –

+0

나는 자동 크기 조절 기능을 켜거나 끄려고했으나 툴바는 변경된 이미지 크기를 수용하기 위해 너비를 조정하지 않습니다. –

+0

내가 말했던대로 : 도구 모음을 작게 만들려면 먼저 작은 이미지를 할당하고 수동으로 도구 모음 크기를 조정해야합니다. 자동화가 없다. –

관련 문제