Главная страница
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
4-1105526889
tse
2005-01-12 13:48
2005.02.27
Печать файла


3-1106988373
HATAB
2005-01-29 11:46
2005.02.27
Связь БД


1-1107968377
alexa
2005-02-09 19:59
2005.02.27
Gif


14-1107943456
АлексС
2005-02-09 13:04
2005.02.27
Контрольная сумма


1-1108363253
Dmitry_04
2005-02-14 09:40
2005.02.27
Check в MainMenu и в PopupMenu