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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2009, 08:04
6ruse 6ruse вне форума
Прохожий
 
Регистрация: 09.11.2009
Сообщения: 20
Репутация: 10
По умолчанию Такая мелочь

Доброго времени суток!!! Извените за такой не серьезный вопрос но это меня уже давно тревожит. Мне нужно зделать так что ты при развертывании окна приложения в полноэкранный вид все компоненты автоматически изменяли свой размер. А при уменьшении размера формы уменьшали свой размер. Я точно знаю что это настраивается по средствам свойств компанентов но каких свойств не могу разобраться(((. Помогите пожалуйста кто чем сможет.
Ответить с цитированием
  #2  
Старый 18.11.2009, 09:38
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

И свойства эти называются размеры и положение...вот только задавать их надо при помощи пропорций во время исполнения программы...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #3  
Старый 18.11.2009, 11:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Там далеко не все так просто. Если речь идет скажем об Edit который при измененении размера формы должен растягиваться не изменяя размера шрифта, то это одно. Если-же речь идет о масштабировании контрола относительно формы, с изменением шрифта и т.д. то это несколько другая технология.
Что имеено вас интересует?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 18.11.2009 в 11:25.
Ответить с цитированием
  #4  
Старый 19.11.2009, 04:43
6ruse 6ruse вне форума
Прохожий
 
Регистрация: 09.11.2009
Сообщения: 20
Репутация: 10
По умолчанию

Доброго времени суток!!! Меня больше интересует первый описанный Вами пример. Где сказанно про изменение Edit а текст в нем не меняется.Если можно помогите чем сможите.
Ответить с цитированием
  #5  
Старый 19.11.2009, 12:24
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

У большинства визуальных компонентов в инспекторе объектов есть свойство Align, которое может принимать значения:

alBottom - объект занимает всю нижнюю часть формы, или объекта, в котором он расположен, менять можно только высоту.
alClient - объект занимает все оставшееся пространство.
alCustom - честно говоря, не знаю.
alLeft - левая часть.
alNone - объект расположен так, как его расположили, без всяких премудростей.
alRight - правая часть.
alTop - верхняя часть.

Последний раз редактировалось Kapitoshka438, 19.11.2009 в 14:22.
Ответить с цитированием
  #6  
Старый 19.11.2009, 12:29
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Еще там же есть свойство Anchors.
Если в нем значение:
akLeft = true : расстояние от левого края формы до объекта не будет изменяться при изменении размера формы.
akRight = true : то же самое для правого края формы.
akTop = true
akBottom = true - аналогично.

Например, если и akLeft = True, и akRight = True, то расстояния до краев формы от объекта не будут изменяться, а значит объект будет изменять размер вместе с формой.

Причем это будет проявляться еще до запуска программы, в режиме редактирования формы.
Ответить с цитированием
  #7  
Старый 19.11.2009, 12:43
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Если же у вас на форме много различных компонентов, то вам следует сначала расписать, как должен быть расположен и какого размера должен быть каждый компонет в зависимости от размеров формы. Ширина формы равна Width.
Например, у вас есть N кнопок, и они расположены друг за другом в нижней части формы на одном уровне. Расстояние между кнопками пусть равно S, как и расстояние от кнопки до края формы. Итого, по ширине формы кнопки должны занимать Width - (N + 1) * S. Следовательно, ширина каждой кнопкй должна быть (Width - (N + 1) * S) / N, вернее, целая часть (Round) от этой величины, а свойство Left этой кнопки должно быть равно Left(предыдущей кнопки) + Width + S.

И все то нужно запихнуть в метод OnResize формы. Пример:
Код:
procedure TForm1.FormResize(Sender: TObject);
var
  ButtonWidth: Integer;
begin
  ButtonWidth := Round(Width - (N + 1) * S);
  Button1.Left := S;
  Button1.Width := ButtonWidth;
  Button2.Left := Button1.Left + ButtonWidth + S;
  Button2.Width := ButtonWidth;
  ...
  ButtonN.Left := Button(N-1).Left + ButtonWidth + S;
  ButtonN.Width := ButtonWidth;
end;

Последний раз редактировалось Kapitoshka438, 19.11.2009 в 12:45.
Ответить с цитированием
  #8  
Старый 19.11.2009, 13:29
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

В общем-то все расписал Kapitoshka438. От себя добавлю, что правильная настройка Anchor - для нескольких компонентов на форме, это иногда очень нетривиальная задача.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter