Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 23:44   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Масштабирование и перемещение компонентов

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

Если кто-то подскажет приемлемое рабочее решение - обещаю перевести ему 10 баксов на вебмани ну или пополнить мобильный/интернет.

Помогите, пожалуйста!
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 28.02.2013, 00:55   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

как вариант: определяй разрешение монитора и изменяй размены по определенному коэфициенту на основе разрешения монитора
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 28.02.2013, 01:59   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Запрос в гугл "Delphi *component*+*resize*" без ковычек даст вам все ответы.
Поиск это все.
Человек_Борща вне форума Ответить с цитированием
Старый 28.02.2013, 02:10   #4
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

пробывал кучу ресайзеров. Ну по крайней мере 2 точно. Оба неправильно располагали компоненты после масштабирования. Не выдерживали пропорции
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 28.02.2013, 02:24   #5
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
как вариант: определяй разрешение монитора и изменяй размены по определенному коэфициенту на основе разрешения монитора
размеры то изменяются, а вот как с расположением элементов быть? не то место занимают(
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 28.02.2013, 03:09   #6
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Доброе время суток!

Цитата:
как вариант: определяй разрешение монитора и изменяй размены по определенному коэфициенту на основе разрешения монитора
if Разрешение = then
Begin
Лево=
ВЕРХ=
end
else
if Разрешение = then
Begin
И Т.Д И Т.П
Нудно но
Мне очень помогло в своё время!
С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 28.02.2013 в 03:13.
Volkogriz вне форума Ответить с цитированием
Старый 28.02.2013, 07:17   #7
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

+1 Volkogriz, иногда простое решение - самое верное
superedward вне форума Ответить с цитированием
Старый 28.02.2013, 08:45   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Вообще более адекватное решение - это панели, алайны (Align) , анкоры (Anchors) , и обработчик ресайза для специфических случаев, во всех этих случаях пользоваться Client- размерами. Также может быть не при ресайзе - например свертка развертка некой панельки.
Пример
Код:
procedure TmainForm.FormResize(Sender: TObject);
var
  wd, hg: Byte;
begin
  gblog.Width := grid.ClientWidth div 2;
  gbchat.Width := grid.ClientWidth div 2;
  gbchat.left := grid.left + grid.Width div 2 + 3;
end;

procedure TMainForm.GBlogClick(Sender: TObject);
begin
  if gblogfolded then
  begin
    GBchat.Align := alRight;
    GBlog.Align := alCustom;
    GBlog.Parent := Self;
    GBlog.Left := Panel1.Left;
    gblog.height := Self.ClientHeight div 3;
  end
  else
  begin
    GBchat.Align := alClient;
    GBlog.Parent := Panel2;
    GBlog.Align := alLeft;
    GBlog.Left := 0;
    gblog.height := Panel3.Height;
  end;
  gblog.Top := ClientHeight - gblog.height;
  gblogfolded := not gblogfolded;
end;
Автор, Вы бы хоть привели скрин чтоли, код уж нет смысла просить, но по нему то уж точно можно было бы сказать реально ли поднять такую функциональность без существенных переделок. А то коли программа не проектировалась даже под такое - то там может быть вообще неподъёмно, при определенных условиях (типа завязка кода на размещение компонентов - тогда работа вообще отвалится при подобных переделках)
phomm вне форума Ответить с цитированием
Старый 28.02.2013, 14:50   #9
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

http://clip2net.com/page/m166009/42673073
Вот ссылка на скрин. Размеры к координатам не привязанны. Разьве что зеленый человечек ходит по точкам, на которых расположены скрытые радиобаттоны.
Прописовать ручками расположение каждой кнопочки достаточно геморно, учитывая то, что это только главная форма... А помимо нее есть еще дофига дочерних форм, на которых расположены кучи имейджов, лейблов и тд и тп
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 28.02.2013 в 14:53.
Dennis777 вне форума Ответить с цитированием
Старый 28.02.2013, 14:58   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Есть два варианта
1. По рекомендациям в #8
2. Если геморно прописовать ручками каждую кнопочку, то оставить все как есть

Изменение размеров шрифта также может повлиять на дизайн формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение компонентов по форме artemavd Общие вопросы Delphi 2 24.04.2012 19:28
Масштабирование drylozav Помощь студентам 0 02.01.2012 20:32
Масштабирование Vova777 Общие вопросы Delphi 9 26.02.2011 19:46
масштабирование Alex_Pro Общие вопросы .NET 0 21.05.2008 18:21
Перемещение компонентов _SERGEYX_ Общие вопросы Delphi 2 10.04.2008 13:33