Главная страница
    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-1147252514
psa247
2006-05-10 13:15
2006.06.04
Блокирование компа !


15-1147191434
alex-drob
2006-05-09 20:17
2006.06.04
Прокси с помощью IdMappedPortTCP1


4-1142001409
pirate
2006-03-10 17:36
2006.06.04
Работа с буфером обмена


1-1145985711
Dmitry_177
2006-04-25 21:21
2006.06.04
Класс для хранения в файле списка списков


6-1138449644
newprogrammer
2006-01-28 15:00
2006.06.04
ftp клиент своими руками





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