![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужен хендл окна, на который плюхнули компонент [D5, Win2k, WinXP]
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.