Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1147414464
Ламот
2006-05-12 10:14
2006.06.04
Диспетчер сервера терминалов отображает не всех пользователей


2-1147861873
13
2006-05-17 14:31
2006.06.04
построение графика


2-1148055734
KLAUS
2006-05-19 20:22
2006.06.04
HextoString


3-1142248267
thvfrjd
2006-03-13 14:11
2006.06.04
проблема с DBLookupComboBox


1-1146048770
Leonardo
2006-04-26 14:52
2006.06.04
ListBox с рамкой