![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Порядок 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)