![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DPI и решение проблем, возникающих с ним [D7, Win95/98, WinXP]
TIF © (2007-12-04 15:04:00)При различных DPI возникают проблемы с размерами отображаемых компонентов, например
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1194860002&n=18
Итак, как же проследить изменение DPI, автоматически (!) подготовить форму и компоненты к отображению на экране (с учётом DPI!), а также учесть границу (рамку, бордюр) окна, чтобы не возникло проблем?
Игорь Шевченко (2007-12-05 17:10:00) [21]
> Неужели нет ничего готового?
Было. В Globus VCL
TIF (2007-12-05 17:09:00) [22]
> Делаешь себе ветку VCL начиная с Tcontrol добавляя событие
> OnChangeDPI и например ScaledTop/Width/height. По ним и
> ресайзишь.
оригинально, но долго.
Нельзя ли побыстрее и ... попроще? Неужели нет ничего готового? Или никому это никогда не было нужно?
tesseract (2007-12-04 18:12:00) [23]Делаешь себе ветку VCL начиная с Tcontrol добавляя событие OnChangeDPI и например ScaledTop/Width/height. По ним и ресайзишь.
Reindeer Moss Eater (2007-12-04 17:18:00) [24]От одной формы конечно. В которой все и реализовать.
TIF (2007-12-04 17:17:00) [25]и от чего мне всё это наследовать?
Reindeer Moss Eater (2007-12-04 16:48:00) [26]наследование и полиморфизм не отменяли
TIF (2007-12-04 16:06:00) [27]Получить-то DPI я получил, а как асвтоматически подогнать размер всех компонентов? И формы? И гланое, рамки окна? Вручную прописывать для каждого компонта - идиотизм, по-моему.
KSergey (2007-12-04 16:03:00) [28]> KSergey © (04.12.07 16:02) [5]
> пиксель на стере
> пиксель на сте не
KSergey (2007-12-04 16:02:00) [29]> Игорь Шевченко © (04.12.07 15:39) [4]
> DPU получается с помощью свойства PixelsPerInch, или я здорово ошибаюсь ?
Позволю себе крамольную мысль - да.
Однако автора конечно же вполне оно устроит, т.к. если у пользователя пиксель на стере отображается два на два миллиметра - то это его проблемы :)
Игорь Шевченко (2007-12-04 15:39:00) [30]
> DPI Получаеться только с помощью линейки
DPU получается с помощью свойства PixelsPerInch, или я здорово ошибаюсь ?
tesseract (2007-12-04 15:11:00) [31]DPI Получаеться только с помощью линейки. Разрешение монитора можно получить через GetDeviceCaps. Клиентскую облать формы сооветсвенно ClientWidth/ClientHeight.
Reindeer Moss Eater (2007-12-04 15:10:00) [32]DPI известно. DPI бывшее при дизайне известно.
Остается делить/умножать и менять размеры фонта у формы что бы она всегда выглядела одинаково красиво.
Игорь Шевченко (2007-12-04 15:08:00) [33]Scaled:=true ?