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

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

Порядок Align-утых компонентов


DevilDevil ©   (2007-11-29 11:38:00) 

Здравствуйте.
Такая вот запарка...

Есть несколько Align-утых прилигающих друг к другу компонентов (Align = alTop). Значения свойств Visible у таких компонентов периодически изменяется, порядок следования таких компонентов изменяется тоже (ЧЕГО НЕ НАДО).

Вопрос: как сохранить порядок следования?


DevilDevil   (2007-11-30 15:59:00) [1]

> ЮЮ ©   (30.11.07 03:04) [8]

Хороший способ. Спасибо.

Правда, я уже реализовал:

- отключить для всех компонентов свойство Align ( = alNone), в порядке убывания, иначе всё само перемешается.

- изменить Top-ы компонентов на требуемые ( MoveWindow(Control.Handle, ..., False);- иначе мерцание при многочисленном изменении Top-ов).

- возврат Align-значений.

P.S. Через Ж конечно... :)

Всем спасибо.


ЮЮ   (2007-11-30 10:49:00) [2]

procedure TForm1.Button2Click(Sender: TObject);

> дык там ведь, наверное, и у самих панелей, и у компонентах
> на них, куча констрейтов ...


Такой код вроде ничего не ломает у компонент на Panel2 с разными значениями Anchor.

procedure TForm1.Button2Click(Sender: TObject);
begin
 if Panel2.Tag = 0 then begin
   Panel2.Tag := Panel2.Height;
   Panel2.Height := 0;
 end
 else begin
   Panel2.Height := Panel2.Tag;
   Panel2.Tag := 0;
 end;
end;

Да и наличие установленого Constraints.MinHeight не мешает.


ari_9   (2007-11-30 10:16:00) [3]

ЮЮ

дык там ведь, наверное, и у самих панелей, и у компонентах на них, куча констрейтов ...


ЮЮ   (2007-11-30 03:04:00) [4]

> Вообще я надеялся на наличие цивилизованных методов

"Цивилизованнее" будет не отключать/включать видимость, а устанавливать Heigh в 0/Восстанавливать Heigh. Нужный Heigh  можно хранить, например, в Tag.


ari_9   (2007-11-30 00:44:00) [5]

DevilDevil

цивилизованных нет. в [1] описан работающий, я так делаю с большим количеством на одной форме панелей alRight


Gadenysh   (2007-11-29 19:40:00) [6]

ручками. хранить в TList порядок и восстанавливать при изменении visible у одной из панелей


DevilDevil   (2007-11-29 12:06:00) [7]

Вообще я надеялся на наличие цивилизованных методов


DevilDevil   (2007-11-29 12:02:00) [8]

Панели.


ЮЮ   (2007-11-29 11:55:00) [9]

> Непонял, что за DrawGrid ?

Какие компоненты собираешь в стопку тоже не понятно :)


DevilDevil   (2007-11-29 11:52:00) [10]

> ЮЮ ©   (29.11.07 11:45) [1]

Непонял, что за DrawGrid ?


ЮЮ   (2007-11-29 11:45:00) [11]

1) Использовать нормальный DrawGrid вместа издевательства над компонентами.
2) пристисвить им Tag в порядке возрастания.
 чтобы втал правильно, надо Align отелючить, Top установить больше нижнего видимого и меньше верхнего, а теперь вклюямит (Align = alTop)


Наверх

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