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

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

Нужен хендл окна, на который плюхнули компонент [D5, Win2k, WinXP]


Страницы:   1 2

Zilog ©   (2004-12-16 00:08:00) 

Делаю невизуальный копонент. В коде потребовалось использовать хендл окна, на который плюхнули компонент. Никак не могу его вытащить....  Application.Handle не подходит.
 
constructor TDesktopBar.Create(AOwner:TComponent);
begin
inherited Create(AOwner);

FHandle := ?????  <<< вот сюда бы мне его
RegisterBar;
end;


Zilog   (2004-12-16 11:37:00) [1]

>> DiamondShark ©   (16.12.04 11:36) [25]

:D


Zilog   (2004-12-16 11:37:00) [2]

>>jack128 ©   (16.12.04 11:31) [24]

у _прложения_ нет у форм есть.


DiamondShark   (2004-12-16 11:36:00) [3]


> нет ни ширины, ни высоты,

и ложки тоже нет.


jack128   (2004-12-16 11:31:00) [4]

jack128 ©   (16.12.04 11:31) [23]
нет ни ширины, ни высоты,


jack128   (2004-12-16 11:31:00) [5]

Zilog ©   (16.12.04 10:58) [21]
2) Top, Left, Width, Height. Так устроит?


нет, не устроит. У ПРИЛОЖЕНИЯ нет ни ширины, ни длины, ни верхнего левого угла.


Reindeer Moss Eater   (2004-12-16 11:04:00) [6]

в обоих сучаях Owner тот что нужно. Откуда может случиться исключение?

Плюхни свой компонент на датамодуль и увидишь, что и откуда может случиться.


Zilog   (2004-12-16 10:58:00) [7]

>>jack128 ©   (16.12.04 01:08) [11]
1) приблизительно, знал бы - не спрашивал тут.
2) Top, Left, Width, Height. Так устроит?

>>jack128 ©   (16.12.04 10:53) [20]
>> Из тебя информацию клещами нужно выдирать.

Так ты же телепат? ;)


jack128   (2004-12-16 10:53:00) [8]

Zilog ©   (16.12.04 9:52) [18]
Откуда может случиться исключение?

ЕСли компонент создатся в ран тайм. См [4]
TUser ©   (16.12.04 10:39) [19]
При чем тут Owner?

Я телепат в седьмом колене!!! :-)) Owner - это что нужно! ;-) Чел скорее всего делает компонент, манипулирующий формой, на которую его кинули.

2Zilog. Ты так и не ответил на
jack128 ©   (16.12.04 1:08) [11]
Еще раз - что такое размер и расположение ПРИЛОЖЕНИЯ ?


ЗЫ Учись граммотно формулировать вопросы. Из тебя информацию клещами нужно выдирать.


TUser   (2004-12-16 10:39:00) [9]


> jack128

При чем тут Owner?


Zilog   (2004-12-16 09:52:00) [10]

>>Только желательно ещё предусмотреь (и как-то обработать)
>>случаи, когда owner всё-таки не TForm, а то получишь exception
>>в конструкторе.

Я так понял Create компонента вызывается в двух случаях:
1) Design-time, в момент когда компонент плюхнулся на форму
2) при запуске приложения.

в обоих сучаях Owner тот что нужно. Откуда может случиться исключение?


Gero   (2004-12-16 08:11:00) [11]


> Zilog ©   (16.12.04 01:17)

[2]


Zacho   (2004-12-16 01:34:00) [12]

Zilog ©   (16.12.04 1:17) [15]

Только желательно ещё предусмотреь (и как-то обработать) случаи, когда owner всё-таки не TForm, а то получишь exception в конструкторе.


Zilog   (2004-12-16 01:17:00) [13]

сенкс, вроде начинаю понимать!


Zilog   (2004-12-16 01:17:00) [14]

вот так вроде как работает
 FHandle := (Owner as TForm).Handle;


Zacho   (2004-12-16 01:11:00) [15]

Zilog ©   (16.12.04 0:43) [6]
у меня Owner типа TComponent


TForm тоже потомок TComponent
В случае "плюханья" компонента на форму его Owner'ом будет именно эта форма


Zilog   (2004-12-16 01:09:00) [16]

>>Мдя. Это ты на основании этого constructor TDesktopBar.Create(AOwner:TComponent); вывел?  Ну-ну...

уже осознал свою оплошность :)

так есть идеи, как поступить?


jack128   (2004-12-16 01:08:00) [17]

Zilog ©   (16.12.04 1:04) [9]
как же он обрабатывает события ИМЕННО НУЖНОГО окна?

Какого нужного окна? Ты вообще представляешь, что делает TApplicationEvents??
Zilog ©   (16.12.04 1:04) [9]
размер - высота и ширина :)
распложение - координаты х,у

Еще раз - что такое размер и расположение ПРИЛОЖЕНИЯ ?


jack128   (2004-12-16 01:06:00) [18]

jack128 ©   (16.12.04 1:00) [8]
> Ну во первых
Это можно убрать. На "во вторых" мыслей не хватило. Но наверника челу нужно именно это

Zilog ©   (16.12.04 0:43) [6]
у меня Owner типа TComponent - и мне кажется твой пример работать не будет

Мдя. Это ты на основании этого constructor TDesktopBar.Create(AOwner: TComponent); вывел?  Ну-ну...


Zilog   (2004-12-16 01:04:00) [19]

размер - высота и ширина :)
распложение - координаты х,у

>>Он данально назначает свои обработчики событий глобальной пременной Application.

хех, а как же он обрабатывает события ИМЕННО НУЖНОГО окна?
эта переменная мне помочь не может?


jack128   (2004-12-16 01:00:00) [20]

Gero ©   (16.12.04 0:31) [4]
Ну во первых это ты в рантайм создаешь меню. Так что о плюхании не может идти и речи. А дезин тайм ты такого не сможешь устроить.
Zilog ©   (16.12.04 0:42) [5]
ну мне с размерчиком приложения

Хм.  То есть кинул твой компонент на форму и приложение стало занитьь не 600КБ, а 500 ?  Круто.  ;-)
Zilog ©   (16.12.04 0:42) [5]
с его расположением

Что такое "расположение приложения"?

Zilog ©   (16.12.04 0:46) [7]
так полагаю этот компонент обязан как то быть связанным с окном, приютившим его

Никак он не связан с окном его приютившим.  Он данально назначает свои обработчики событий глобальной переменной Application.


Страницы:   1 2

Наверх

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