Главная страница
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.036 c
15-1151058784
Tab
2006-06-23 14:33
2006.07.23
компонент загружающий .mht файлы из потока


2-1152031679
Yegorchic
2006-07-04 20:47
2006.07.23
ListView.Canvas


4-1144765377
sally
2006-04-11 18:22
2006.07.23
Какое значение для управляющего кода FSCTL_GET_NTFS_FILE_RECORD


15-1150880370
Layner
2006-06-21 12:59
2006.07.23
Отправка SMS от любого номера


2-1151860741
студент12
2006-07-02 21:19
2006.07.23
Как найти путь