Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.02.2014, 23:42
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию Масшабирование формы

Как реализовать, чтобы при изменении размера формы сохранялись пропорции не только элементов, но и текст подгонялся?
Ответить с цитированием
  #2  
Старый 10.02.2014, 09:47
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

align, margins, alignWithMargins
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #3  
Старый 13.02.2014, 12:24
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
Сообщение

Цитата:
Сообщение от Mrak
align, margins, alignWithMargins
Это то понятно, но на практике что-то не выходит нужный эффект. можно более наглядно? например:
есть форма, на ней три груп бокса: левый, правый, центральный.
левый и правый - квадраты, которые должны и оставаться такими, но при ресайзе пропорции у меня сбиваются. Центральный должен быть прижат к верху малой гранью, и быть по центру горизонтально(между правым и левым)
Ответить с цитированием
  #4  
Старый 13.02.2014, 16:41
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

не совсем понятно со слов

можно использовать якоря - Anchors
можно в FormResize написать, типа Panel.Width:=100500;
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Этот пользователь сказал Спасибо Mrak за это полезное сообщение:
nixon232 (13.02.2014)
  #5  
Старый 13.02.2014, 17:08
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

В особо сложных случаях можно использовать событие OnResize в котором самостоятельно задавать размеры и положение панелей в соответствии с нужной логикой.

UPD
Тьфу-ты! Mrak об этом же уже написал - не дочитал до конца его сообщение...

Последний раз редактировалось poli-smen, 13.02.2014 в 21:21.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
nixon232 (13.02.2014)
  #6  
Старый 14.02.2014, 16:55
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от poli-smen
В особо сложных случаях можно использовать событие OnResize в котором самостоятельно задавать размеры и положение панелей в соответствии с нужной логикой.

UPD
Тьфу-ты! Mrak об этом же уже написал - не дочитал до конца его сообщение...
Да я не думаю, что у меня сложный случай, но что-то не могу понять.
вот прикрепил форму.
Задача: чтобы при ресайсе сохранялись пропорции элементов.
и вопрос в догонку - как сделать чтобы ресайзинг был равномерным, т.е. при изменении длины менялась и высота формы. через коэффициент типо Width/Height? Или существуют другие варанты?
Вложения
Тип файла: rar dis_rar.rar (2.3 Кбайт, 5 просмотров)
Ответить с цитированием
  #7  
Старый 15.02.2014, 11:58
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от nixon232
Да я не думаю, что у меня сложный случай, но что-то не могу понять...
имхо... В корне не верный подход. Возник вопрос, а что будет с расположением и размером этих многочисленных элементов на форме, если, к примеру, у КП (юзера) в системе установлен крупный шрифт или разрешение отличное вверх от разрешения разработчика? Невозможно просчитать все варианты, надоест, чтоб оно нормально масштабировалось, такое надо картинкой рисовать и забыть о визуальных компонентах.

Максимум, что здесь подходит, так это расчитать расположение всех составляющих под два варианта мелкого и крупного шрифта в 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;
и вообще запретить изменять размеры формы посредством WMGetMinMaxInfo. Свобода и удобство - это хорошо, но практичность и простота при разработке лучше. Овчинка выделки не стоит: пол кода, а может и больше, будет в одних расчётах положения...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter