|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.03.2012, 11:12 | #1 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
Разбегаются со своих мест компоненты в формах.
Интересный глюк, и пока что-то не получается найти в гуглях.
В общем, делаю в дельфи 7 программу. Работаю, соответственно, в виндовс 7 (как всё через десять лет сошлось-то!!!). Когда запускаю прожект, всё путём - компоненты в формах все по своим местам. Однако при запуске на других системах, причём, как семёрке, так и икс пэ, положения и размеры компонентов как-то изменяются в сторону увеличения, что кнопки и края, там, таблиц, выходят за границы форм. Такая ерунда происходит с масштабируемыми формами. Когда размер фиксирован, то клиентская область увеличивается пропорционально, и всё вроде как влазит. Но если размер можно изменять, то клиентская оласть не ресайзится, а вылезшие за её границу компоненты, приякореные к правому и нижнему краю, так и остаются при масштабировании за пределами формы, понятное дело. В чём тут дело? о_О упд: в аттаче как это выглядит. Просто тупо всё чуточку больше, как будто действует какое-то масштабирование. Но на системах никакого особого масштабирования не выставлялось, всё по умолчанию. Икспэ так вообще чистая на вм стоит. Последний раз редактировалось yaapelsinko; 08.03.2012 в 12:07. |
08.03.2012, 12:57 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
7-ке присущь расширенный заголовок.
А т.к. XP это не имеет, то она увеличивает размеры окна. |
08.03.2012, 13:08 | #3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Якоря используйте.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
08.03.2012, 15:36 | #4 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 67
|
А я что делаю? У меня всё приякорено куда надо. Тему читайте. Вы картинку посмотрите - там просто одно окно отмасштабировано относително другого, увеличены размеры компонентов, положения относительно 0:0.
Я, собственно, поискал да нашёл, как этого избежать - отключил в свойствах форм параметр Scale. Разница процентов в 5 получается по размеру. Проблема в том, что а какого ж чёрта у меня на всех неродных системах всё скейлится в большую сторону относительно системы разработки? Нигде никогда подобных настроек не делал, в своей системе у меня разрешение в dpi 100% (96 взш), то, что по умолчанию. А во всех других (семёрка на другом компе, икспэ на другом компе, икспэ на виртуальной машине, свежеустановленная) - скейл в плюс. |
08.03.2012, 15:47 | #5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
А, понял.
А точно DPI = 96 (точно) на обеих системах? Если да, то это может работать хак для старых программ. Попробуйте явно подцепить манифест с указанием, что ваша программа - "новая" (подробнее - включите requestedExecutionLevel=asInvoker и dpiAware=True).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мониторинг рабочих мест | DenProx | Общие вопросы Delphi | 4 | 10.03.2011 11:02 |
Прокомментировать пару непонятных мест | Kapitann | PHP | 3 | 21.09.2010 18:35 |
Аж глаза разбегаются!.. | 2pizza | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 19 | 29.10.2008 20:17 |
Поиск узких мест | RomanIgorevi4 | Общие вопросы C/C++ | 8 | 08.07.2008 18:24 |
при изменении размера формы, все компоненты на ней оставались на своих местах | ***СкаЙ*** | Помощь студентам | 15 | 13.06.2007 11:13 |