Вниз
Скачать: CL | DM;

align   Найти похожие ветки 

← →
Димон   (2005-02-10 12:31) [0]

Добрый день.

Вопрос - почему присвоение Align = alClient контролу, у которого visible = false не имеет последствий (например, не меняется width) до той поры пока visible не станет равным true.

Пояснение к вопросу:
1. Есть Panel1, созданный в designtime, где Panel1.Visible := False, Panel1.Width = 200.
2. При выполнении такого кода
var
  kPanel: TPanel;
begin
  kPanel := TPanel.Create(Self);
  kPanel.Parent := Panel1;
  ShowMessage(IntToStr(kPanel.Width));
  //kPanel.HandleNeeded;
  kPanel.Align := alClient;
  ShowMessage(IntToStr(kPanel.Width));
  Panel1.Visible := True;
  ShowMessage(IntToStr(kPanel.Width));
end;

мы последовательно увидим сообщения 185, 185, 200.
Т.е. размер kPanel реально сменился только после Panel1.Visible := True;
3. Если снять комментарий то размер kPanel будет менять сразу после kPanel.Align := alClient.

Почему так происходит понятно - в классе TControl реакция на изменение Align отсутствует в случае отсутствия Handle у контрола, который появлятся, в частности, в момент показа контрола на экране.

Вопрос: чем противопоказан явный вызов HandleNeeded и есть ли иные более цивилизованные способы реакции на изменение Align, кроме приведенного мной.

Спасибо.


← →
КаПиБаРа ©   (2005-02-10 12:35) [1]

Встречный вопрос. А зачем менять размер невидимой панели?


← →
Суслик ©   (2005-02-10 12:37) [2]


> Встречный вопрос. А зачем менять размер невидимой панели?

Динамическая настройка?
Мерцает иначе - контролов много.


← →
Anatoly Podgoretsky ©   (2005-02-10 14:30) [3]

КаПиБаРа ©   (10.02.05 12:35) [1]
Вопрос неправильный, менять можно - если нужно, но не стоит ожидать никакой реакции, у невидимых контролов.


← →
Димон   (2005-02-10 14:39) [4]


> Вопрос неправильный, менять можно - если нужно, но не стоит
> ожидать никакой реакции, у невидимых контролов.

Странно почему так.
Для оптимальности по скорости?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
3-1106754082
denis24
2005-01-26 18:41
2005.02.27
Хранение больших текстов


1-1108126253
snake_r
2005-02-11 15:50
2005.02.27
выделение в StringGrid


14-1105982313
MDFE
2005-01-17 20:18
2005.02.27
MDFE News сервер для чтения форума Мастера "DELPHI".


1-1108473816
mr-jack
2005-02-15 16:23
2005.02.27
пара несложных вопросов


6-1103163658
Rat
2004-12-16 05:20
2005.02.27
Запуск приложения с другого компьютера




   Наверх