Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странное поведение свойства 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 благополучно затирается - это уже совсем никуда не годится!


Наверх

Титульная страница Поиск, карта сайта Написать письмо