Почему масштабирование элементов управления отличается на разных ПК?

Я пытаюсь предоставить пользователю «чистый и простой» интерфейс, скрывая некоторые элементы. Только маленькая стрелка означает, что он может расширить часть строки главного меню. Когда все закрыто, это выглядит так:

enter image description here

Когда вы все открываете, это выглядит так:

enter image description here

Каждая стрелка — это кнопка SpeedButton, расположенная в левой части панели. Нажав на кнопку, ширина переключается между шириной Speedbutton (закрыта) и шириной панели во время разработки (открыта). Ширина панели во время разработки сохраняется как константа. Процедура show_hide_controls обрабатывает это:

procedure TCompose_Main.show_hide_controls (key: string; Button: TSpeedButton; Panel: TPanel; width: Int32);
begin
   if GPA.iKey [key] = 1
      then Panel.Width := width         // show panel, set panel to design width
      else Panel.Width := Button.Width; // hide panel, set with to button width
   Button.Glyph.Assign (nil);
   Images_Left_Right.GetBitmap (GPA.iKey [key], Button.Glyph);
end; // show_hide_controls //

Эта процедура вызывается следующим образом:

show_hide_controls ('Show Play Controls', // index to panel to show/hide
                    Enlarge_Play,         // Speedbutton requesting the enlargement/hide
                    Panel_Play,           // Panel to show/hide   
                    cPlayWidth);          // Width of panel when shown 

Теперь несколько пользователей сообщают, что часть панели скрыта, например:

enter image description here

Похоже, операционная система (Windows 7) играет некоторые трюки с масштабирование. Я не могу повторить эту ошибку. Кто-нибудь понимает, что здесь происходит? И есть ли аккуратный способ запрограммировать это независимо от настроек?

ОбновлениеКак правильно указал GDF в своем ответе, это связано с масштабированием шрифтов (панель управления > Дисплей). Это ведет себя несколько странно на моей машине. Изменение его на 150% оказывает незначительное влияние, тогда как изменение его на 125% оказывает значительное влияние. Как вы могли догадаться, я тестировал первое, а не второе масштабирование.Только когда пользователь сообщил, что уменьшил масштаб со 125% до 100%, я смог воспроизвести его ошибку на своей машине.

Я не смог найти связь между шрифтами и проблемами, которые у меня есть, как было предложено несколькими респондентами. Моя система все еще страдает от всех тестов, которые я провел с Courier (не новым), Segoe UI, Tahoma и MS Sans Serif :-D. Возможно, косвенно, потому что размеры элементов управления, вероятно, изменены, чтобы вместить текст.

Как с этим справиться? Я не знаю, я начну экспериментировать и дам вам знать, если я что-то найду.

Спасибо всем за помощь!

8
задан Arnold 2 June 2012 в 14:34
поделиться