Главная страница
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.041 c
11-1130279014
Red Baron
2005-10-26 02:23
2006.07.23
Возможно баг?


3-1148038085
DVM
2006-05-19 15:28
2006.07.23
Одна база Access - несколько клиентов


2-1151858235
МишаК
2006-07-02 20:37
2006.07.23
программирование и интернет


2-1151843884
S-Slim
2006-07-02 16:38
2006.07.23
надо копировать DB файл!


15-1151160348
Gbp
2006-06-24 18:45
2006.07.23
Неудобный отчет по утечкам памяти в BDS2006.