Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: 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 вся ветка

Текущий архив: 2005.02.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
8-1100157157
Shiza
2004-11-11 10:12
2005.02.27
Звук. Сколько килогерц в одной октаве?


4-1105977134
Cosinus
2005-01-17 18:52
2005.02.27
Не пойму... Что не так в этом коде?


14-1107538132
Кирилл
2005-02-04 20:28
2005.02.27
Вопрос по математике


14-1107492594
SnapIn
2005-02-04 07:49
2005.02.27
Помогите с сетью...


1-1108441307
Steve
2005-02-15 07:21
2005.02.27
TImageList - как можно из одного рисунка вырезать много мелких?