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

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

В качестве parent- а компонента рабочий стол [D2005, XP]


Kvendi ©   (2007-11-29 13:33:00) 

Собственно вопрос в названии как в качестве parent-а компонента указать рабочий стол, т.е. чтобы компонент распологался не на форме, а на рабочем столе ?


Однокамушкин   (2007-12-02 21:20:00) [1]

Контрол можно разместить в любом неVCL-ном окне, используя конструктор CreateParented вместо Create, только смысла в этом, как написано в Сергей М. ©   (29.11.07 14:52) [16], не будет... Контролы в VCL обмениваются со своими родителями кучей специфичных и стандартных нотификационных сообщений, а если родитель не посылает компоненту нужных сообщений и не обрабатывает его сообщения, то б ольшая часть функциональности компонента будет недоступна... Пробовали когда-нибудь вставить кнопку или комбобокс в StringGrid? Ни фига не работает, а всё потому, что в гриде переопределён обработчик нотификационных сообщений от дочерних окон, и переопределён неправильно


DmT   (2007-12-01 16:05:00) [2]

Panel1.Parent:=nil;
Panel1.ParentWindow:=GetDesktopWindow();


Amoeba   (2007-11-29 15:05:00) [3]


> Kvendi   (29.11.07 13:33)
>
> Собственно вопрос в названии как в качестве parent-а компонента
> указать рабочий стол, т.е. чтобы компонент распологался
> не на форме, а на рабочем столе ?
>

Извращенец!


clickmaker   (2007-11-29 15:04:00) [4]


> [1] tesseract ©   (29.11.07 14:07)
> никак. Рабочий стол компонентом не являеться. Можно по handle
> окна создавать. Handle у рабочего стола 0.

GetDesktopWindow()


Сергей М.   (2007-11-29 14:52:00) [5]


> Kvendi   (29.11.07 13:33)


Расположить-то ты его может и расположишь, только вот работать он как положено не будер - родителю впарили пасынка, которого он знать не знает и ухаживать за ним не намерен.


Anatoly Podgoretsky   (2007-11-29 14:45:00) [6]

Ни каких CreateWindow в цитате, на которую я реагировал не видно. Ку?


homm   (2007-11-29 14:24:00) [7]

> [11] Anatoly Podgoretsky ©   (29.11.07 14:20)
> Не правда

Возможно у вас свой, особый взгляд на вещи. Уточню. «Кнопка, появлению кторой предшествовал вызов CreateWindow — тоже окно».


Anatoly Podgoretsky   (2007-11-29 14:23:00) [8]


> Handle у рабочего стола 0.

У экрана, десктопов может быть много.


homm   (2007-11-29 14:22:00) [9]

> [10] Kvendi   (29.11.07 14:19)
> [Pascal Error] Unit29.pas(29): E2362 Cannot access protected
> symbol TControl.SetParent

Не юзай TControl.SetParent. Нужный тебе SetParent лежит в модуле windows.pas.


Anatoly Podgoretsky   (2007-11-29 14:20:00) [10]


> «Кнопка — тоже окно!»

Не правда


Kvendi   (2007-11-29 14:19:00) [11]

[Pascal Error] Unit29.pas(29): E2362 Cannot access protected symbol TControl.SetParent


homm   (2007-11-29 14:18:00) [12]

> [0] Kvendi   (29.11.07 13:33)
> как в качестве parent-а компонента указать рабочий стол

> [1] tesseract ©   (29.11.07 14:07)
> Handle у рабочего стола 0.

SetParent(Handle, 0);


Anatoly Podgoretsky   (2007-11-29 14:18:00) [13]

> Kvendi  (29.11.2007 14:14:04)  [4]

Компонет вообще нельзя разместить, он же может быть не визуальный и размещать можно только на наследнике TWinControl и подобном. Рабочий стол не компонент типа TWinControl


Kvendi   (2007-11-29 14:16:00) [14]


> Нет, возможно.

Ок, тогда соответственно напращивается второй вопрос: как ?


homm   (2007-11-29 14:16:00) [15]

«Кнопка — тоже окно!»
© шокирующая новичков истина


homm   (2007-11-29 14:15:00) [16]

> [4] Kvendi   (29.11.07 14:14)
> ок, т.е. правильный ответ что невозможно разместить свой
> компонент вместо формы на рабочем столе ?

Нет, возможно.

> [1] tesseract ©   (29.11.07 14:07)
> Handle у рабочего стола 0.


Kvendi   (2007-11-29 14:14:00) [17]

ок, т.е. правильный ответ что невозможно разместить свой компонент вместо формы на рабочем столе ?


Anatoly Podgoretsky   (2007-11-29 14:13:00) [18]

> Kvendi  (29.11.2007 14:11:02)  [2]

ListView тоже не компонент, вот TListView компонент, но это не рабочий стол.


Kvendi   (2007-11-29 14:11:00) [19]

а как же ListView который собственно и представляет из себя рабочий стол ?


tesseract   (2007-11-29 14:07:00) [20]

никак. Рабочий стол компонентом не являеться. Можно по handle окна создавать. Handle у рабочего стола 0.


Наверх

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