![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где находится список того, в какой очерёдности находятся [D7]
КАСК © (2005-07-13 01:27:00)компоненты на форме 7 Хочется что-нибудь подудобнее чем BringToFront.
Германн (2005-07-18 02:44:00) [1]До сих пор не ясно, что хочет автор сабжа. Более того - он упрямо не хочет его пояснить!
Юрий Зотов (2005-07-18 01:50:00) [2]> Каск (18.07.05 01:19) [18]
> Раз есть BringToFront, то есть и ZOrder.
Так. Еще раз: TImage - неоконный контрол. У них нет Z-порядка.
Z-order - это понятие Windows. А для Windows неоконные контролы Delphi - это вообще не контролы. Более того, она о них вообще ничего не знает и даже не подозревает об их существовании. Поэтому термин "Z-order" к неоконным контролам неприменим. Можно говорить о порядке отрисовки, еще о чем-то, но только не о Z-порядке.
> есть два имеджа одни над другим, как определить какой из них
> находится сверху?
Вот Вы сами и подтвердили, что для неоконных контролов ни о каком Z-порядке речи идти не может - иначе задача решалась бы элементарным GetWindow.
Если заглянуть в исходники VCL, то увидим, что BringToFront вызывает SetZOrder, тот - SetZOrderPosition, а тот - переупорядочивает список Controls и перерисовывает контрол. Значит, с точки зрения Delphi, порядок отрисовки (но не Z-порядок) определяется порядком следования контролов в списке Controls.
Наиль (2005-07-18 01:43:00) [3]По моему ЮЗ(13.07.05 01:49) достаточно точно ответил на этот вопрос. Так как D7 под рукой нет, то могу лишь подсказать как я дошел до выяснения этой истины. Пишешь Image1.BringToFront между любым Begin End и жмёшь на нём Ctrl+Мышь, либо Alt+ВВЕРХ. Мне нравится последний вариант. D7 выкинет тебя на реализацию BringToFront. Скорее всего ты там увидишь перестановки в массиве Components.
Каск (2005-07-18 01:19:00) [4]
> Юрий Зотов © (14.07.05 02:54) [16]
> > Каск (14.07.05 01:28) [14]
>
> TImage - неоконный контрол. У них нет Z-порядка
Раз есть BringToFront, то есть и ZOrder.
Допустим есть два имеджа одни над другим, как определить какой из них находится сверху ?
Экспериментатор (2005-07-14 06:57:00) [5]Порядок создания также можешь пронаблюдать посмотрев форму как текст. (DFM то бишь)
Юрий Зотов (2005-07-14 02:54:00) [6]> Каск (14.07.05 01:28) [14]
TImage - неоконный контрол. У них нет Z-порядка, это просто рисунки.
Может, стоит просто описать задачу? Без терминологии, простыми русскими словами. ИМХО, так будет понятнее.
Германн (2005-07-14 01:38:00) [7]2 Каск (14.07.05 01:28) [14]
"Ненадо уговаривать." - пишется как "Не надо уговаривать."!
Научись говорить на русском языке.
>Вопрос был как получить доступ к ZOrder'у ? И менять его.
Т.е. ты хочешь получить доступ к системе!?
Каск (2005-07-14 01:28:00) [8]
> evvcom © (13.07.05 08:18) [12]
> Копирование уже подготовленного "за кадром" TBitmap на визуальный
> TImage проходит очень быстро.
Ненадо уговаривать.
Вопрос был как получить доступ к ZOrder'у ? И менять его.
Anatoly Podgoretsky (2005-07-13 08:43:00) [9]evvcom © (13.07.05 08:18) [12]
Объяснить нормально можешь?
Сложная задача, иначе вопроса бы не было.
evvcom (2005-07-13 08:18:00) [10]Копирование уже подготовленного "за кадром" TBitmap на визуальный TImage проходит очень быстро. А вообще действительно непонятно, что тебе нужно. Объяснить нормально можешь? Тогда, глядишь, и сам себя поймешь.
Каск (2005-07-13 03:36:00) [11]
> Defunct © (13.07.05 02:12) [8]
> Сделайте себе массив TBitmap и рисуйте их на одном Image
> в том порядке, в котором вам нужно.
Перерисовка сразу всего занимает много времени.
Defunct (2005-07-13 02:16:00) [12]Юрий Зотов © (13.07.05 02:12) [9]
Вероятно, он пытается сделать показ слайдов как в Power Point. только непонятно к чему там куча Image'ей
Юрий Зотов (2005-07-13 02:12:00) [13]> Каск (13.07.05 02:05) [6]
Что значит "не нарушая очерёдность показа"?
Defunct (2005-07-13 02:12:00) [14]> Каск (13.07.05 02:05) [6]
> Ну, так как один имедж показать поверх другого, но при этом не нарушая очерёдность
Глупость какая-то.
Сделайте себе массив TBitmap и рисуйте их на одномImage в том порядке, в котором вам нужно.
Defunct (2005-07-13 02:09:00) [15]
if Image is TControl then
ShowMessage('image is TControl);
if Image is TComponent then
ShowMessage('image is TComponent);
Каск (2005-07-13 02:05:00) [16]
> Юрий Зотов © (13.07.05 02:01) [5]
> > КАСК (13.07.05 01:54) [4]
>
> TComponent и все его наследники - компоненты.
>
> TControl и все его наследники - визуальные компоненты. На
> сленге - контролы.
Ну, так как один имедж показать поверх другого, но при этом не нарушая очерёдность показа других имиджей ?
Юрий Зотов (2005-07-13 02:01:00) [17]> КАСК (13.07.05 01:54) [4]
TComponent и все его наследники - компоненты.
TControl и все его наследники - визуальныекомпоненты. На сленге - контролы.
Значит, вопрос "TImage - это контрол или компонент?" поставлен некорректно. TImage - это и компонент, и контрол одновременно.
КАСК (2005-07-13 01:54:00) [18]TImage - это контрол или компонент ?
Юрий Зотов (2005-07-13 01:49:00) [19]Если все компоненты, то Components. А если контролы, то они не обязаны лежать именно на форме, но те, что лежат на форме - Controls.
КАСК (2005-07-13 01:49:00) [20]
> alex-drob (13.07.05 01:34) [1]
> Object TreeView?
Что Object TreeView?