Главная страница
    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.45 MB
Время: 0.043 c
14-1107434240
syte_ser78
2005-02-03 15:37
2005.02.27
Ктонибуть зарядку по утрам делает?


1-1108369082
Sash
2005-02-14 11:18
2005.02.27
как копировать файл?


4-1105869695
fafCracker
2005-01-16 13:01
2005.02.27
Помогите с клавиатурным Хуком!


3-1107153874
TAN_K
2005-01-31 09:44
2005.02.27
ГРУППИРОВАНИЕ ДАННЫХ В ОТЧЕТЕ


1-1108447158
КиТаЯц
2005-02-15 08:59
2005.02.27
Вопрос по инсталлятору InnoSetup (для тех кто пользуется)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский