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

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

Где находится список того, в какой очерёдности находятся [D7]


Страницы:   1 2

КАСК ©   (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?


Страницы:   1 2

Наверх

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