Форум: "Основная";
Текущий архив: 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