Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.20;
Скачать: CL | DM;

Вниз

Неверное срабатывание якорей, когда форма в дизайне меньше экрана   Найти похожие ветки 

 
Kolan ©   (2009-08-04 14:01) [0]

Здравствуйте!

Столкнулся с такой ситуацией:

Есть резиновая (то есть форма может растягиваться и сжиматься без последствий для удобства использования) форма. Резиновось реализована с помощью якорей и обычно работает. При старте форма разворачивается на весь экран.

У программиста монитор 19", поэтому в дизайнере форма у него довольно крупная (какая разница, все равно при старте растянется или сожмется до нужного размера). Оказывается, что если размер формы в дизайнере будет больше чем экран пользователя, то якоря сработают не верно.

http://img-fotki.yandex.ru/get/3510/ksoftware.b/0_2de7b_1163e289_orig

На рисунке выше видно, что форма как бы обрезана, причем если её сжимать, то она масштабируется, сохраняя такой обрезанный вид.

Как я понял проблема в том, что якоря начинают работать не в тот момент. Видимо происходит все так:

1. Допустим форма по вертикали в дизайнере 900 пикселей, а у пользователя их всего 600.
2. При запуске форма создается такой, как в дизайнере и вылазит за экран.
3. Форма разворачивается на весь экран, но якоря еще не работают и контролы не сжимаются.
4. Начинают работать якоря, но все уже испорчено.

Лечится это сжатием формы в дизайнере, но такое решение мне кажется опасным, потому что можно забыть это сделать.

Как правильно решить проблему?


 
Игорь Шевченко ©   (2009-08-04 14:11) [1]


> Как правильно решить проблему?


свойством Position ?


 
Kolan ©   (2009-08-04 15:00) [2]

Хм, если выставить poDefault (оно же имелось в виду?), то проблемы возникают и на большом разрешении.

http://img-fotki.yandex.ru/get/3609/ksoftware.b/0_2de7e_fad4fa6_orig

Размеры контролов соответствуют их размерам в дизайнере.


 
Игорь Шевченко ©   (2009-08-04 15:37) [3]


> При старте форма разворачивается на весь экран.


в дизайнере windowstate = wsMaximized не пробовал ?


> если выставить poDefault (оно же имелось в виду?),


У свойства Position есть несколько значений. Извини, из твоих рисунков непонятно, в чем у тебя проблема


 
CSS   (2009-08-04 17:38) [4]

Я думаю надо всё вручную масштабировать...

А то якоря эти всегда как-то криво работают... =(


 
Palladin ©   (2009-08-04 17:44) [5]

Я масштабировал все в ручную, при запуске приложения. Грубо говоря инициализировал его (расположение). Дальше все само работало. Вообще рекомендую инициализировать размеры и положения всегда в ручную. Ибо вся эта кухня жестко ломается не только при заведомо меньших размерах экрана, но так же и при изменении разрешения шрифта в системе.


 
DVM ©   (2009-08-05 01:25) [6]


> Я масштабировал все в ручную, при запуске приложения.

Я аналогично делал.


 
CSS   (2009-08-05 01:46) [7]

А я при изменении размера делал... В процентах размеры ставил... ^__^


 
RWolf ©   (2009-08-05 09:56) [8]

А я использую для задания авторазмеров только свойство Align, компоненты размещаю в панелях-контейнерах; таким образом избавляюсь от проблемы с показом формы при нестандартных PixelsPerInch.


 
Kolan ©   (2009-08-05 13:33) [9]

А, вот, комбинация wsMaximized в дизайнере + poDefault кажется работает.

Вариант с самостоятельным пересчетом слишком трудоемкий, кроме того в данном проекте форма собирается из кусочков. То есть в дизайнере она почти пустая, поэтому код ресайза пришлось бы распылять ровным слоем по всей программе, что, понятно, трудно одобрить.

Игорь, благодарю за подсказки.


 
Хитрий Лис   (2009-08-06 17:06) [10]

Удалено модератором
Примечание: Offtopic



Страницы: 1 вся ветка

Текущий архив: 2011.03.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1291498204
Юрий
2010-12-05 00:30
2011.03.20
С днем рождения ! 5 декабря 2010 воскресенье


2-1293142515
vitge
2010-12-24 01:15
2011.03.20
Установка ширины ячейки в StringGrid.


15-1290453194
ProgRAMmer Dimonych
2010-11-22 22:13
2011.03.20
Книга по ADO для не совсем чайника


1-1248958891
igordth
2009-07-30 17:01
2011.03.20
Record - сравнивание записей


4-1221723822
mikaa
2008-09-18 11:43
2011.03.20
Shell_NotifyIcon в Windows 2003