Вниз
Скачать: CL | DM;

Приведение любого контрола к типу TObject по его Handle   Найти похожие ветки 

← →
Nike   (2006-04-24 15:24) [0]

Здравствуйте! У меня есть хэндлы контролов из других программ, но для дальнейшей работы с ними необходимо привести их к типу TObject. Подскажите, пожалуйста, как это сделать.


← →
Сергей М. ©   (2006-04-24 15:30) [1]

Считай что никак.


← →
KSergey ©   (2006-04-24 15:47) [2]

TObject(ControlHandle)

это я подразумеваю, что под словом "хэндлы контролов" подразумеваются хендлы соотв. окон. Ну или другие 4-х байтные указатели.


← →
evvcom ©   (2006-04-24 15:58) [3]


> KSergey ©   (24.04.06 15:47) [2]

См.[1]


← →
Гаврила ©   (2006-04-24 16:01) [4]

Привести то их можно. Другое дело, что это "нечто" не будет являться TObject"ом
И при любой попытке поработать с ним как с TObject получишь по рукам.
Надо объяснять, почему?


← →
KSergey ©   (2006-04-24 16:12) [5]

> evvcom ©   (24.04.06 15:58) [3]
> > KSergey ©   (24.04.06 15:47) [2]
> См.[1]

Спасибо, читать я умею.
А нельзя ли аргументировать?


← →
evvcom ©   (2006-04-24 16:35) [6]


> А нельзя ли аргументировать?

Аргументировать что? Что Handle (видимо, подразумевается hWnd) - идентификатор окна ОС не является объектом класса, реализованного в Дельфи? Тут, по-моему, и аргументировать нечего. Windows ничего не знает об объектах созданных в той или иной версии Дельфи, Си и прочих средах программирования. С такими хендлами можно работать только через функции ОС, предназначенные для такой работы.


← →
Мефисто   (2006-04-24 16:38) [7]

FindControl ?

Хотя если >>  контролов из других программ и если прога не написана на дельфи, то наверно могут быть глюки.


← →
evvcom ©   (2006-04-24 16:45) [8]

function FindControl(Handle: HWnd): TWinControl;
Ну и чего она найдет, если
> У меня есть хэндлы контролов из других программ

Функция вернет nil и делов-то. Это объект другой среды! Delphi о его структуре ничего не знает!


← →
KSergey ©   (2006-04-24 16:48) [9]

> evvcom ©   (24.04.06 16:35) [6]
> Аргументировать что? Что Handle (видимо, подразумевается
> hWnd) - идентификатор окна ОС не является объектом класса,
>  реализованного в Дельфи? Тут, по-моему, и аргументировать
> нечего. Windows ничего не знает об объектах созданных в
> той или иной версии Дельфи, Си и прочих средах программирования.
>  С такими хендлами можно работать только через функции ОС,
>  предназначенные для такой работы.

При чем тут "идентификатор окна ОС не является объектом класса"?? Сказано же: "привести к типу TObject". Привести к типу - в любом случае можно! Может он их в TObjectList хочет пихать? Зачем путаете человека и додумываетет то, чего не было в вопросе??


← →
Мефисто   (2006-04-24 16:53) [10]

evvcom ©   (24.04.06 16:45) [8]

Я и оставил небольшой комент сомнения по этому поводу в своем же посте. Зачем повтарять дважды? :)


← →
Palladin ©   (2006-04-24 16:58) [11]

В заключение.

1.
Приведение Handle к TObject осуществляется как: TObject(Handle), но использование подобного приведения сводится лишь к хранению.

2.
Handle контрола стороней программы и VCL Delphi твоей - никакаким боком не связанны, частные случаи (а конкретно: программа написанна на тойже версии Delphi)  возможны, но крайне сложны и стольже крайне нерекомендуемы.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
3-1144930044
RomanH
2006-04-13 16:07
2006.06.04
Использование User Defined Functions


2-1147849669
Creative
2006-05-17 11:07
2006.06.04
программа не входит в цикл


4-1141773912
_Devil_
2006-03-08 02:25
2006.06.04
Удаление папки


15-1147087612
Некто_
2006-05-08 15:26
2006.06.04
Аналог TryStrToDate в php


1-1146241343
Archy
2006-04-28 20:22
2006.06.04
Коды Шеннона−Фэно




   Наверх