Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Закрепление и привязка компонентов на форме [D7]


Страницы:   1 2

allrussia ©   (2006-12-02 04:03:00) 

Не знаю как поточнее назвать вопрос и перейду сразу к делу.
Есть форма с 3 Timage. 1 находится в центре слева, другой точно по центру формы, 3 - в центре справа.
В них динамически загружаются картинки, у всех стоит свойство Proportional.
При изменении размеров формы картинки съезжают со своих позиций

Нужно добиться такого эффекта, чтобы при изменении размеров формы (в том числе maximize) компоненты TImage сохраняли бы свои
положения относительно формы в правильных пропорциях, + увеличивали/уменьшали бы картинки во время изменения размеров.

Я пробовал свойство Anchors
у 1 я выставлял в true (left, bootom, up)
у 2 - у 1 я выставлял в true (left, bootom, up, right)
у 3 - выставлял в true (right, bootom, up)

но только центральная картинка тогда увеличивается а остальные нет, свойство Constraints не помогает

если же у 2 убрать left и right тогда 1 и 3 увеличиваются а 2 остается маленькой

В общем вопрос как правильно реализовать это


allrussia   (2006-12-02 14:37:00) [21]

да кстати по поводу привязок компонентов...

столкнулся еще с 1 проблемой

форма, pagecontrol, 2 страницы,
на 1 странице label (RightJustify), Anchors (aRight)
т.е. лейбл по правому краю выравнивается, свойство autosize=true

так вот,
при запуске приложения форма изменяет размеры (увеличивается),
2 страница по умолчанию, ставим в лейбл любой текст
переключаемся на первую страницу
и видим что лейбл не переместился направо

а если autosize false, то все нормально работает
вот такой глюк

причем, если послезапуска выбрать 1 страницу, затем вторую, присвоить текст метке, вернуться на первую то все OK!


allrussia   (2006-12-02 14:22:00) [22]

Джо - уже пробовал, глючит после нескольких рисайзов, в особенности после maximize

вот код

i:= Round (StrToFloat (inttostr(GroupBox13.Width)) / (345 / 105));
j:= Round (StrToFloat (inttostr(GroupBox13.Width)) / 43.125);
Image2.Width:=i;
Image3.Width:=i;
Image4.Width:=i;
Image2.Left:=j;
Image3.Left:= j*2 + i;
Image4.Left:= j*3 + 2*i;}


три image находятся в групбоксе длина которго 345
длина image 105
43.125 это отношение 345/8
8 - это image2.left
соответственно когда форма увеличивается то left увеличивается


Джо   (2006-12-02 14:08:00) [23]

Мне кажется, совсем не сложно реализовать эту логику поведения "руками", прописав ее в обработчике формы OnResize.


allrussia   (2006-12-02 05:34:00) [24]

я думаю мне нужно вот это, но в d7 этого нет

http://bdn1.borland.com/article/0,1410,33421,00.html


allrussia   (2006-12-02 05:29:00) [25]

панели - это как будто Timage
внизу - Headercontrol

1 - http://slil.ru/23502966
2 - http://slil.ru/23502969

1 скриншот форма в нормальном состоянии
2 форма в растянутом состоянии

вот панели должны растягиваться и оставаться на своих местах как это делает headercontrol


Джо   (2006-12-02 04:11:00) [26]

Может, какой-то скриншотик выложишь? А то сложновато понять. Я, например, плохо представляю, что такое "находится в центре слева".


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо