Delphi7. У меня есть Listbox, OwnerDrawn, с фиксированным ItemHeight. Теперь я хочу, чтобы оно выглядело нормально при 125% размерах шрифтов Windows. В настоящее время я вижу, что шрифт элементов увеличивается, но ItemHeight не является, поэтому элементы «усекаются» по Y. Как отрегулировать ItemHeight, когда OS имеет размер шрифта 125% или 150%?Delphi: как настроить ownerdrawn Listbox, для различных систем DPI?
2
A
ответ
1
Невозможно использовать OnMeasureItem как List.Style = OwnerDrawFixed. My sol:
function ScaleFontSize(Size: Integer; Form: TForm): Integer;
begin
Result:= Size * Form.PixelsPerInch div 96 + 1;
end;
procedure TfmSetup.TntFormCreate(Sender: TObject);
begin
with ListTabColors do
ItemHeight:= ScaleFontSize(ItemHeight, Self);
end;
Смежные вопросы
- 1. MFC ownerdrawn listbox scroll issue
- 2. Использование IPC для различных систем
- 3. Масштаб Delphi Firemonkey для высоких окон DPI
- 4. Gfortran директивы препроцессора для различных операционных систем
- 5. Определение пропусков кэша для различных файловых систем
- 6. Как настроить ListBox?
- 7. Delphi Listbox + CheckListbox
- 8. Delphi - HWND to listbox
- 9. Как скриптировать несколько команд ssh и scp для различных систем
- 10. Delphi Error ListBox
- 11. Различных систем Средний шрифт на прошивке 7
- 12. Поддержка различных экранов и Samsung s7 dpi
- 13. Обнаружение различных операционных систем и платформ
- 14. Как настроить WiX файл для различных клиентов
- 15. различных мобильных операционных систем и баз данных
- 16. Delphi - Эквивалент ListBox строка поиск для ListView
- 17. Понимание различных систем ввода-вывода java
- 18. Поворот изображения на основе различных coordinat систем
- 19. Показать файлы в ListBox Delphi
- 20. Перечисление списка систем Com Порты в Delphi
- 21. Найти соотношение/алгоритм для перевода различных систем координат?
- 22. NullReference Исключение в TreeNode.get_Handle() в OwnerDrawn TreeView
- 23. Существует ли список препроцессоров для различных операционных систем (и версий)?
- 24. Microsoft Dynamics AX версии для различных операционных систем
- 25. Как вручную масштабировать шрифт компонента с изменением DPI в Delphi?
- 26. Delphi - как настроить макет IDE
- 27. Как сравнить эффективность различных систем позиционирования в помещении
- 28. Win 8.1 DPI - WPF - Как найти независимый монитор/дисплей DPI
- 29. Как получить шкалу DPI для всех экранов?
- 30. Как настроить работу Jenkins Github на несколько систем
Я думаю, что это неопровержимо, если вы не разместите несколько примеров кода. Как мы можем догадаться, что вы делаете? Во-вторых, я считаю, что вам нужно масштабировать ItemHeight, чтобы обрабатывать высоту текста шрифта, который вы хотите нарисовать, поскольку ItemHeight находится в пикселях, а не в диалогах. Я бы использовал Canvas.TextHeight ('X') + Padding, чтобы получить высоту и сохранить ее в ItemHeight. (Padding = от 4 до 6 пикселей) –
@Warren P Спасибо, используя Canvas.Textheight тоже хорошо. Я решил ниже. – Prog1020
@Ingo, используя «TextHeight», также был точкой моего ответа ... Вы отклонили его только потому, что хотите отрегулировать высоту элемента в другом месте, потому что вы используете другой стиль списка. Ничего ... – TLama