Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 233

/ вопрос открыт /

Здравствуйте, эксперты!
Есть форма с нанесенными на неё компонентами(лейблы, дбгрид, кнопки, несколько вкладок).
Проектирую на мониторе с разрешении 1280*1024 а презентовать буду на мониторе с меньшим разрешением.
Вопрос в том, как сделать так, чтобы компоненты и сама форма автоматически подстраивались под разрешение экрана.
Не хотелось бы чтоб полформы с компонентами пришлось вытаскивать полосой прокрутки.

PaWeLL Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: PaWeLL (статус: Посетитель)
Вопрос отправлен: 27 мая 2010, 18:52
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 11 июня 2010, 00:37; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 27 мая 2010, 18:55 [#1]:

Классика же - используйте свойство Align.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 28 мая 2010, 08:23 [#2]:

Цитата (Вадим К):

Классика же - используйте свойство Align.

...и Anchors!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
PaWeLL

PaWeLL (статус: Посетитель), 29 мая 2010, 13:30 [#3]:

Ну это все так говорят. А где про это можно подробно почитать с примерами?
min@y™

min@y™ (статус: Доктор наук), 29 мая 2010, 13:54 [#4]:

Не надо ничего нигде читать.
Положи на форму панель, поиграйся с её свойствами Align и Anchors, поизменяй при этом размеры формы и сразу всё поймёшь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 29 мая 2010, 13:58 [#5]:

А почитать можно, конечно, в хэлпе.

Align property (TControl)

Цитата:


Determines how the control aligns within its container (parent control).

Delphi syntax:

property Align: TAlign;

C++ syntax:

__property TAlign Align = {read=FAlign, write=SetAlign, default=0};

Description

Use Align to align a control to the top, bottom, left, or right of a form or panel and have it remain there even if the size of the form, panel, or component that contains the control changes. When the parent is resized, an aligned control also resizes so that it continues to span the top, bottom, left, or right edge of the parent.

For example, to use a panel component with various controls on it as a tool palette, change the panel’s Align value to alLeft. The value of alLeft for the Align property of the panel guarantees that the tool palette remains on the left side of the form and always equals the client height of the form.

The default value of Align is alNone, which means a control remains where it is positioned on a form or panel.

Tip: If Align is set to alClient, the control fills the entire client area so that it is impossible to select the parent form by clicking on it. In this case, select the parent by selecting the control on the form and pressing Esc, or by using the Object Inspector.

Any number of child components within a single parent can have the same Align value, in which case they stack up along the edge of the parent. The child controls stack up in z-order. To adjust the order in which the controls stack up, drag the controls into their desired positions.

Note: To cause a control to maintain a specified relationship with an edge of its parent, but not necessarily lie along one edge of the parent, use the Anchors property instead.


Anchors property (TControl)

Цитата:


Specifies how the control is anchored to its parent.

Delphi syntax:

property Anchors: TAnchors;

C++ syntax:

__property TAnchors Anchors = {read=FAnchors, write=SetAnchors, stored=AreIsAnchorsStored, default=3};

Description

Use Anchors to ensure that a control maintains its current position relative to an edge of its parent, even if the parent is resized. When its parent is resized, the control holds its position relative to the edges to which it is anchored.

If a control is anchored to opposite edges of its parent, the control stretches when its parent is resized. For example, if a control has its Anchors property set to [akLeft, akRight], the control stretches when the width of its parent changes.

Anchors is enforced only when the parent is resized. Thus, for example, if a control is anchored to opposite edges of a form at design time and the form is created in a maximized state, the control is not stretched because the form is not resized after the control is created.

Note: If a control should maintain contact with three edges of its parent (hugging one side of the parent and stretching the length of that side), use the Align property instead. Unlike Anchors, Align allows controls to adjust to changes in the size of other aligned sibling controls as well as changes to the parent’s size.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
PaWeLL

PaWeLL (статус: Посетитель), 30 мая 2010, 19:01 [#6]:

Ммм, ну кое что прояснилось. Размеры компонентов изменяются. Но все равно не изменяются размеры надписей на кнопках и прочих объектах. :(
min@y™

min@y™ (статус: Доктор наук), 30 мая 2010, 19:09 [#7]:

Цитата (PaWeLL):

Но все равно не изменяются размеры надписей на кнопках и прочих объектах.

Так и должно быть. А как ты хочешь, чтобы они менялись? По какому принципу? И/или в каких программах ты такое видел?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
PaWeLL

PaWeLL (статус: Посетитель), 2 июня 2010, 18:06 [#8]:

Ну а как еще отмасштабировать форму полностью?
Если, допустим, приложение писалось в 1280*1024 полностью, а потом его установили на 1024*768.
Размеры компонентов уменьшатся и надписи в них не влезут.
И это ок считается чтоли?
Вадим К

Вадим К (статус: Академик), 2 июня 2010, 18:22 [#9]:

а если его решат запустить на 320 на 240? тогда что?
В целом, в данном случае понятно, что останутся неполные надписи. Выход - разрабатывать на минимальном разрешении.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 2 июня 2010, 18:32 [#10]:

Цитата (PaWeLL):

Размеры компонентов уменьшатся и надписи в них не влезут.

Во-первых, надписи надо делать ТОЛЬКО системным шрифтом, чтобы глобальные (системные) настройки юзера на них ВЛИЯЛИ.
Во-вторых, надписи даже системным шрифтом надо делать с запасом по ширине/высоте: мало ли что.
Если будут косяки со шрифтами и/или расположением контролов, то юзеры очень быстро найдут твоей программе замену, т.к. раздражающий и/или ненастраиваемый GUI никому (!!!) не нужен!

Что ж за такую прогу ты пишешь, что такой геморрой, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 2 июня 2010, 18:37 [#11]:

Выложи куданить скриншот формы, хочу посмотреть на это безобразие: может дам более конкретные советы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
PaWeLL

PaWeLL (статус: Посетитель), 11 июня 2010, 00:37 [#12]:

Всем спасибо за помощь. Теперь это уже не так важно.
Учту советы на будущее.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.03 сек.