![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странное поведение свойства Align:
Alexander © (2002-09-22 12:30:00)кидаю на форму панель, Align=Left, потом кидаю BitBtn, Align=Left и добавляю такой код:
procedure TFormMain.pnlTopClick(Sender: PObj);
begin
pnlTop.Width := pnlTop.Width - 1;
Form.Caption := Int2Str(pnlTop.Width);
end;
и что в итоге? Ширина панели корректно уменьшается, но BitBtn остаётся на месте! Хотя по всем правилам должен смещаться на 1 после каждого нажатия.
Alexander (2002-09-25 13:59:00) [1]Ну что, лечение этому есть? (правое выравнивание лабела на модальной форме)
Alexander (2002-09-23 17:10:00) [2]>Насчет bitbtn (пример#1) я не понял - что не так. Он же caLeft.
>Он и не должен никуда менять свои размеры при изменении родителя.
Нет, я BitBtn кладу не на панель. У них с панелью общий предок и располагаются они друг за другом.
>Хотелось бы посмотреть, как вы в VCL выравнивание комбобоксу
>будете задавать. В KOL можно хотя бы top/bottom/left/right
>без особых проблем иметь.
Да, но там есть якоря.
И вообще по моему у Label правое выравнивание не работает!
О! Я даже вычислил когда оно не работает!
В общем так: панель, на ней лабел с правым выравниванием. Эта панель на форме, которая создаётся динамически и показывается модально! Во загнул! Но без этого всё работает нормально.
Vladimir Kladov (2002-09-23 16:50:00) [3]Хотелось бы посмотреть, как вы в VCL выравнивание комбобоксу будете задавать. В KOL можно хотя бы top/bottom/left/right без особых проблем иметь.
Насчет bitbtn (пример#1) я не понял - что не так. Он же caLeft. Он и не должен никуда менять свои размеры при изменении родителя.
Alexander (2002-09-22 15:08:00) [4]Нет, я привел не рабочий код, а только пример. Реально всё посложнее: там изменяется зоголовок метки, на основе этого уже идут разные размеры. А если всё делать руками, тогда для чего все эти выравнивания - для Design time?
Вот ещё примерчик:
(реально там у меня всё на панель кидается, но для простоты можно на форму - суть от этого не меняется)
кидам на форму Label, Align=Right, потом кидаем ComboBox, Align=Client. Больше ничего и делать не надо, просто запускаем и наслаждаемся...
В общем как-то не очень работают методы выравнивания.
SPeller (2002-09-22 15:00:00) [5]Припиши ещё строку
BitBtn.Left:=BitBtn.Left-1;
Alexander (2002-09-22 12:32:00) [6]если же изменить строку:
pnlTop.Width := pnlTop.Width + 1;
то BitBtn благополучно затирается - это уже совсем никуда не годится!