nawok78 |
Отправлено: 24.01.2007, 10:31 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
Есть форма. на ней куча всего.
Во время проектирования максимизую и нориализую размер
все компоненты адекватно реагируют.
во время работы — как будто они думают что окно больше и вылазят за размеры окна.... что за хрень?
Присоединить изображение
|
|
nawok78 |
Отправлено: 24.01.2007, 10:36 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
вот так формы виглядат — сверху при разработке
снизу при работе
Присоединить изображение
|
|
AVC |
Отправлено: 24.01.2007, 10:51 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
На нижней картинке у вас правая граница "Клиент — заказчик" уехала вправо. Естественно центр и сместился. Проверьте почему это происходит или используйте всякие автовыравнивания. |
|
nawok78 |
Отправлено: 24.01.2007, 11:25 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
Я же говорю — компоненты "думают" что окно шире
поэтому правая граница у них вылазит за пределы окна
но почему они так думают? автовыравниваениЕ?
да забыл -
Форма типа MDIChild при запуске видно что она в родительском окне
когда проектировал — смотрел чтоб она помещалась в родительское и масштабировалась нормально
Решил попробовать сначала
сделал fsMDIForm — форму
сделал fsMDIChild — форму на нее кинул TPanel в TPanel TEdit растянул его почти на всю длину TPanel — оставил чуть-чуть
Установил TEdit.Anchors: Left=true, Rigth=true, Top=true, Bottom = false
та же фигня
поменял fsMDIChild на fsNormal — опять фигня только наоборот )))
теперь TEdit думает что окно меньше чем есть и оставляет справа много места.
- да при проектировании формы стоит Width 694 — как билдер создал форму — так я ее больше и не трогал
- а при открытии ее Width явно больше (где-то на 75 пикселей )
специально (для чистоты эксперимента) никакого кода кроме открытия окна не писал
CODE |
if (!List_AVR)
List_AVR = new TList_AVR(Application);
List_AVR->Show();
|
Однако если задавать размеры TEdit в обработчике OnResize — все ОК!
Отредактировано nawok78 — 24.01.2007, 14:47 |
|
Doga |
Отправлено: 24.01.2007, 15:14 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Разберитесь со свойством компонентов Align. Грамотное использование этого свойства позволт программе автоматически расставлять компоненты при изменении размеров формы как надо, без вашего участия (по крайней мере те из них, которые это свойство имеют).
Уход границ компонентов возможен ещё в одном случае. А именно когда изменён размер шрифта в системе, например на "Огромный". Если свойство формы Scaled = true, компоненты автоматически будут изменять свой размер подстраиваясь под размер системного шрифта. Тут можно либо выключить это свойство, либо менять размеры с помощью дополнительного кода. Но судя по картинкам, это пока ещё не Ваш случай
|
|
nawok78 |
Отправлено: 24.01.2007, 15:42 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
Ура! Свершилось чудо! Друг спас жизнь друга!
Помогло!!!!!!!!
А со свойствами Алайн, Анчерс все почти слава богу — когда в дизайнере распахивал окно — все было пучком
Хрен-там! Не совсем помогло.
Только после того как RadioGroup1 поменял на GroupBox1 с кучей радиобуттонов .............. ВОТ ЧЕМ ПОМЕШАЛА RadioGroup1 ????????????
Отредактировано nawok78 — 25.01.2007, 09:39 |
|
Sand |
Отправлено: 25.01.2007, 13:10 |
|
Не зарегистрирован
|
У меня была такая проблема, когда и Scaled не помог. Пришлось масштабировать окно и взаимное расположение компонентов через TScreen. Зато теперь уверена в стабильной работе приложения))) |
|
nawok78 |
Отправлено: 25.01.2007, 14:59 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
А как это сделать через ТСкрин? тем более что мне советуют вернуть Скалед в ТРУ кто-нибудь знает?
Отредактировано nawok78 — 29.01.2007, 08:32 |
|