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

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

Контролы на экране


i-am-vladko ©   (2006-12-16 17:12:00) 

Доброго времени суток!
На форме есть много элементов - наследников TControl, расположенных в GroupBox`ax, Panel`ax, и т.д. вобщем в контейнерах, причем и сами контейнеры могут быть расположены в других контейнерах. В элементах и контейнерах - свои Align, Anchors (помимо Left, Top, Height, Width, конечно). Задача - по DoubleClick создать эффект "мигания". Ставлю таймер - по таймеру изменяю Visible. Когда Visible = FALSE, другой элемент может "занять" его место в случае Align <> alNone. Поэтому рекурсивно по Form.Controls создаю массив из Align, Anchors, Left, Top всех элементов, сбрасываю текущие Align i Anchors (alNone, []). После снятия "мигания" возвращаю их из массива. Проблема в том, что иногда после возвращения Align, Anchors, Left, Top элементы оказываются не на своем месте. Наконец долгожданный ВОПРОС :
КАК ПРАВИЛЬНО ОТСОРТИРОВАТЬ ЕЛЕМЕНТы В МАССИВЕ чтоб вернуть их корректно?


RASkov   (2006-12-16 19:37:00) [1]

Гиблое это дело... я не говорю, что не возможное, но гиблое.
По мимо твоего списка, в делфи есть также свой, который обновляется при смене таких свойств как Visible...
Т.е. если есть два контрола оба alTop то если верхний спрятать и вновь показать то он уже не обязан быть верхним.
Лучше эффект "мигания" пересмотри, и как вариант - "мигай цветом" [1] или закрывай/открывай его клиентскую область, например, панелью без Bevell'ов...


i-am-vladko   (2006-12-16 17:19:00) [2]

Конечно проще)
А все-таки хочется так )))


Desdechado   (2006-12-16 17:17:00) [3]

Может, проще мигать переключением цвета?


Наверх

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