powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форма не ресайзится
6 сообщений из 6, страница 1 из 1
Форма не ресайзится
    #40080884
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано: форма с AutoSize = True и три панели с Align = alTop, alClient, alBottom.
Вопрос: почему при скрытии средней панели с Align = alClient размеры формы не меняются (не ужимается по высоте)?
Это баг или как сделать чтобы форма ресайзилась по размерам видимых панелей?
Delphi 10.4.2, Win10 21H1
...
Рейтинг: 0 / 0
Форма не ресайзится
    #40080885
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект в прицепе
...
Рейтинг: 0 / 0
Форма не ресайзится
    #40080887
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing
Вопрос: почему при скрытии средней панели с Align = alClient размеры формы не меняются (не ужимается по высоте)?
потому что RTFM!
...
Рейтинг: 0 / 0
Форма не ресайзится
    #40080918
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing
Вопрос: почему при скрытии средней панели с Align = alClient размеры формы не меняются (не ужимается по высоте)?
А должна?
LiYing
как сделать чтобы форма ресайзилась по размерам видимых панелей?
Писать код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function GetPanelHeight(APanel: TPanel): Integer;
begin
  if APanel.Visible then
    Result := APanel.Height
else
  Result := 0;
end;

Self.Height :=
  GetPanelHeight(pnlTop) +
  GetPanelHeight(pnlClient) +
  GetPanelHeight(pnlBottom);
...
Рейтинг: 0 / 0
Форма не ресайзится
    #40080923
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
А должна?

А почему нет?
F1 Vcl.Forms.TForm.AutoSize:
Specifies whether the control sizes itself automatically to accommodate its contents.
Use AutoSize to specify whether the control sizes itself automatically. When AutoSize is True, the control resizes automatically when its contents change.

Так понимаю, что если средняя панель невидима, т.е. выпадает из содержимого формы, то освободившееся от нее место должно "ужаться". Однако, этому, видимо, мешает нижняя панель.
...
Рейтинг: 0 / 0
Форма не ресайзится
    #40080982
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing,

Все эти аутосайз на контейнерах работают через одно место.
Иногда помогает сделать
Код: pascal
1.
2.
AutoSize := False;
AutoSize := True;


в нужном месте, но не всегда.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форма не ресайзится
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]