Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.034 c
1-1108130837
Sergeich
2005-02-11 17:07
2005.02.27
Вхождение точки в полигон


1-1108108934
kull
2005-02-11 11:02
2005.02.27
Время ожидания действий пользователя


1-1107777773
Zilog
2005-02-07 15:02
2005.02.27
Вывод форматированого текста + графика


14-1107348564
Иксик2
2005-02-02 15:49
2005.02.27
У кого-нибудь есть опыт регистрации доменов на godaddy.com


1-1108396972
Коля
2005-02-14 19:02
2005.02.27
Как использовать автоматически добавляемое PopupMenu в своём?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский