Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Приведение любого контрола к типу 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
2-1148055734
KLAUS
2006-05-19 20:22
2006.06.04
HextoString


4-1142251757
Чапаев
2006-03-13 15:09
2006.06.04
Кто запустил процесс?


15-1146924039
User_OKA
2006-05-06 18:00
2006.06.04
Коммутатор


15-1147434041
oldman
2006-05-12 15:40
2006.06.04
Какой процесс работает? (задачка для новичков)


6-1139044443
tesseract
2006-02-04 12:14
2006.06.04
Brodcast/DHCP в Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский