Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Порядок Align-утых компонентов   Найти похожие ветки 

 
DevilDevil ©   (2007-11-29 11:38) [0]

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

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

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


 
ЮЮ ©   (2007-11-29 11:45) [1]

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


 
DevilDevil ©   (2007-11-29 11:52) [2]

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

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


 
ЮЮ ©   (2007-11-29 11:55) [3]

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

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


 
DevilDevil ©   (2007-11-29 12:02) [4]

Панели.


 
DevilDevil ©   (2007-11-29 12:06) [5]

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


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

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


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

DevilDevil

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


 
ЮЮ ©   (2007-11-30 03:04) [8]

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

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


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

ЮЮ

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


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

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 не мешает.


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

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

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

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

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

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
15-1195763722
dFedor
2007-11-22 23:35
2007.12.23
Поделитесь материалами


15-1195814933
@!!ex
2007-11-23 13:48
2007.12.23
Оцените код 2


8-1171310423
man-1982
2007-02-12 23:00
2007.12.23
как из двух изображений сделать одно


2-1196342254
NaRuTo
2007-11-29 16:17
2007.12.23
Можно ли поменять цвет шрифта TRadioGroup


2-1196258361
sydenis
2007-11-28 16:59
2007.12.23
как 2 раза открыть файл ?