Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];

Вниз

Нужен хендл окна, на который плюхнули компонент   Найти похожие ветки 

 
Zilog ©   (2004-12-16 00:08) [0]

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

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


 
Gero ©   (2004-12-16 00:13) [1]

Для каких целей?


 
jack128 ©   (2004-12-16 00:29) [2]

function TMyCoolComponent.GetParentHandle: THandle;
begin
 if Owner is TWinControl then
   Result := TWinControl(Owner)
 else
   Result := 0
end;


 
jack128 ©   (2004-12-16 00:30) [3]

Блин, сорри, естественно
if Owner is TWinControl then
  Result := TWinControl(Owner).Handle


 
Gero ©   (2004-12-16 00:31) [4]


> jack128 ©   (16.12.04 00:29)

MyCoolPopup := TPopupMenu.Create(Form2.Button1);

Можно ли сказать, что MyCoolPopup "плюхнули" на Form2.Button1?


 
Zilog ©   (2004-12-16 00:42) [5]

2Gero
ну мне с размерчиком приложения необходимо поиграть, с его расположением, обработать кой-какие адресованные ему месседжи.


 
Zilog ©   (2004-12-16 00:43) [6]

2jack128
у меня Owner типа TComponent - и мне кажется твой пример работать не будет


 
Zilog ©   (2004-12-16 00:46) [7]

я пытаюсь подсмотреть в стандартном unit AppEvnts (с закладки Additional), я так полагаю этот компонент обязан как то быть связанным с окном, приютившим его. Пока не получается....


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

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.


 
Zilog ©   (2004-12-16 01:04) [9]

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

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

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


 
jack128 ©   (2004-12-16 01:06) [10]

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

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

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


 
jack128 ©   (2004-12-16 01:08) [11]

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

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

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


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

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

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

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


 
Zacho ©   (2004-12-16 01:11) [13]

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


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


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

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


 
Zilog ©   (2004-12-16 01:17) [15]

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


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

Zilog ©   (16.12.04 1:17) [15]

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


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


> Zilog ©   (16.12.04 01:17)

[2]


 
Zilog ©   (2004-12-16 09:52) [18]

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

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

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


 
TUser ©   (2004-12-16 10:39) [19]


> jack128

При чем тут Owner?


 
jack128 ©   (2004-12-16 10:53) [20]

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]
Еще раз - что такое размер и расположение ПРИЛОЖЕНИЯ ?


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


 
Zilog ©   (2004-12-16 10:58) [21]

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

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

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


 
Reindeer Moss Eater ©   (2004-12-16 11:04) [22]

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

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


 
jack128 ©   (2004-12-16 11:31) [23]

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


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


 
jack128 ©   (2004-12-16 11:31) [24]

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


 
DiamondShark ©   (2004-12-16 11:36) [25]


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

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


 
Zilog ©   (2004-12-16 11:37) [26]

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

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


 
Zilog ©   (2004-12-16 11:37) [27]

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

:D



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 3.223 c
1-1103447644
Dan
2004-12-19 12:14
2005.01.02
Освобождаются ли динамические массивы внутри структур?


14-1102860074
kai
2004-12-12 17:01
2005.01.02
всем ворам бы руки поотрубать...


1-1103060932
TTWW_Ant
2004-12-15 00:48
2005.01.02
Автоматическое заполнение HTML форм


14-1103106994
}|{yk
2004-12-15 13:36
2005.01.02
От курения глупеют, доказали ученые


4-1100697957
R.O.O.T
2004-11-17 16:25
2005.01.02
ПОМОГИТЕ НАУЧИТЬСЯ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский