Главная страница
    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.041 c
15-1147356947
Петр
2006-05-11 18:15
2006.06.04
Дельфи


2-1148119883
Glex
2006-05-20 14:11
2006.06.04
Как получить имена всех подпапок, находящихся в данной папке?


15-1147325915
Ega23
2006-05-11 09:38
2006.06.04
С Днём рождения! 11 мая


15-1146887365
Думкин
2006-05-06 07:49
2006.06.04
Суббота


15-1147029232
SergProger
2006-05-07 23:13
2006.06.04
Настройка подключения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский