|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Масшабирование формы
Как реализовать, чтобы при изменении размера формы сохранялись пропорции не только элементов, но и текст подгонялся?
|
#2
|
||||
|
||||
align, margins, alignWithMargins
Я за здоровый экстрим! Спасибо за "спасибо") |
#3
|
|||
|
|||
Цитата:
есть форма, на ней три груп бокса: левый, правый, центральный. левый и правый - квадраты, которые должны и оставаться такими, но при ресайзе пропорции у меня сбиваются. Центральный должен быть прижат к верху малой гранью, и быть по центру горизонтально(между правым и левым) |
#4
|
||||
|
||||
не совсем понятно со слов
можно использовать якоря - Anchors можно в FormResize написать, типа Panel.Width:=100500; Я за здоровый экстрим! Спасибо за "спасибо") |
Этот пользователь сказал Спасибо Mrak за это полезное сообщение: | ||
nixon232 (13.02.2014)
|
#5
|
||||
|
||||
В особо сложных случаях можно использовать событие OnResize в котором самостоятельно задавать размеры и положение панелей в соответствии с нужной логикой.
UPD Тьфу-ты! Mrak об этом же уже написал - не дочитал до конца его сообщение... Последний раз редактировалось poli-smen, 13.02.2014 в 21:21. |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
nixon232 (13.02.2014)
|
#6
|
|||
|
|||
Цитата:
вот прикрепил форму. Задача: чтобы при ресайсе сохранялись пропорции элементов. и вопрос в догонку - как сделать чтобы ресайзинг был равномерным, т.е. при изменении длины менялась и высота формы. через коэффициент типо Width/Height? Или существуют другие варанты? |
#7
|
||||
|
||||
Цитата:
Максимум, что здесь подходит, так это расчитать расположение всех составляющих под два варианта мелкого и крупного шрифта в Create формы Код:
procedure TForm1.FormCreate(Sender: TObject); function SmallFonts : BOOLEAN; var DC : HDC; begin DC := GetDC(0); Result := (GetDeviceCaps(DC, LOGPIXELSX) = 96); ReleaseDC(0, DC); end; begin if SmallFonts then begin // под мелкий шрифт Panel1.Width:= 25; ... end else begin // под другой Panel1.Width:= 27; ... end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |