Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

рабочий стол в качестве парента компонента   Найти похожие ветки 

 
redlord   (2006-07-04 12:17) [0]

всем привет
подскажите как создать в рантайме форму

1   у которой парентом является рабочий стол ?
2   можно ли в качестве парента назначить чужой контрол

 myform:=tform.Create(? ? ?);
 myform.Left:=20;
 myform.Top:=20;
 myform.Height:=200;
 myform.Width:=200;
 myform.Parent:=? ? ? ?


 
Fay ©   (2006-07-04 12:56) [1]

> Create(? ? ?)
Здесь ожидается не Parent, а Owner

> чужой контрол
Это хто?


 
koha   (2006-07-04 13:03) [2]

Попробуй так:
windows.SetParent(myForm.Handle,GetDesktopWindow());

Button - точно прилипает к рабочему столу.

btns:=TButton.Create(Owner);
btns.Parent:=Fm;
windows.SetParent(btns.Handle,GetDesktopWindow());
btns.Left:=random(Screen.Width);
btns.Top:=random(Screen.Height);


 
koha   (2006-07-04 13:50) [3]

Вот окно в рантайме принадлежащее рабочему столу:

Frm:=TForm.Create(Owner);
Windows.SetParent(Frm.Handle,GetDesktopWindow());
Frm.Show;


Только какой смысл?


 
antonn ©   (2006-07-04 14:12) [4]

koha   (04.07.06 13:50) [3]
Только какой смысл?

по Win+D не сворачивается. Тут где то рядом была ветка, оттуда сюда пришли...


 
redlord   (2006-07-04 18:36) [5]

спасибо. на рабочий стол повесить получилось,
а вот на контрол чужой проги не хочет липнуть

Windows.SetParent(Frm.Handle,application.handle);

для чего это надо:
данный код будет забускатся из dll
устанавливающий хук на чужую прогу
а следовательно форма да илюбой контрол
окажется в адрессном пространстве чужой проги со всеми вытекающими  последствиями (добавляю кнопочку проге стороннего разработчика)


 
koha ©   (2006-07-05 19:04) [6]

application.handle - это кажется хендел собственного application, наверно
необходимо поиметь handle того application на который собираешся прилепить свое окно. Наверно необходимо использовать функции поиска: findwindow?
Я не пробовал так, хотя стоит попробовать может, что и получится, меня эта тема тоже заинтересовала.


 
StriderMan ©   (2006-07-05 19:17) [7]


> а вот на контрол чужой проги не хочет липнуть

используй ParentWindow (надо знать хэндл окна, на которого "лепить"). при этом parent обязательно ставь nil.


 
redlord   (2006-07-05 22:09) [8]

to koha

да так и есть нужно findwindow использовать, теперь все приклеивается.

тока теперь проблема другого плана
при закрытии проги установившей хук , происходит критичесская ошибка
в проге на которую хук был установлен
а еси первой закрыть прогу на которую поставлен хук то все работает без глюков
и кто должен убивать приаттаченный обект ?



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

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
15-1150829013
DillerXX
2006-06-20 22:43
2006.07.23
Вы случано не знаете,


1-1150045065
Nikolaich
2006-06-11 20:57
2006.07.23
Как правильно определить дату в дельфи


2-1151858843
МишаК
2006-07-02 20:47
2006.07.23
панель задач


15-1151047805
Desdechado
2006-06-23 11:30
2006.07.23
Работает ли поиск по конференциям?


15-1151337417
Кручен-Верчен
2006-06-26 19:56
2006.07.23
Как сделать так, чтобы Mozilla Firefox использовал HTTP 1.0?