Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли получить TForm из Handle [D7, WinXP]


Ламерюга ©   (2007-01-24 20:07:00) 

и как ето сделать, если форма принадлежит моему приложению, но используется через dll?


Сергей М.   (2007-01-25 10:01:00) [1]


> Ламерюга   (24.01.07 20:07)


Чтобы не мучаться, собери оба проекта (exe и dll) с опцией использования ран-тайм пакетов, не забудь обязательноудалить из uses обоих проектов упоминания о ShareMem.
При этих условиях вызов вышеупомянутой FindControl() будет успешно работать в любом месте любого из твоих взаимодействующих проектов.


Юрий Зотов   (2007-01-25 02:39:00) [2]

> Ламерюга  

Допустим, объект Вы нашли, и этот объект даже действительно форма, но...

...но формой этот объект будет для DLL, а не для EXE. Потому что один и тот же класс в DLL и в EXE - это разные классы, каждый со своей VMT.

В общем, то, что для DLL - форма, для EXE уже не форма. И наоборот.


Джо   (2007-01-24 22:19:00) [3]

> [5] Бурундук ©   (24.01.07 22:18)
> 2властелин колхоза   (24.01.07 22:08) [3]
>
> Ага.
> И получишь EInvalidCast.
> К чему бы это?...

Дело совсем ни в каком не "EInvalidCast".


Leonid Troyanovsky   (2007-01-24 22:18:00) [4]


> властелин колхоза   (24.01.07 22:08) [3]

> FindControl(Handle) as TForm


Это врядли.

--
Regards, LVT.


Бурундук   (2007-01-24 22:18:00) [5]

2властелин колхоза   (24.01.07 22:08) [3]

Ага.
И получишь EInvalidCast.
К чему бы это?...


властелин колхоза   (2007-01-24 22:08:00) [6]

FindControl(Handle) as TForm


Leonid Troyanovsky   (2007-01-24 21:55:00) [7]


> Loginov Dmitry ©   (24.01.07 20:27) [1]

> Самое простое - с использованием пакетов.

Еще проще - не использовать длл.

--
Regards, LVT.


Loginov Dmitry   (2007-01-24 20:27:00) [8]

Самое простое - с использованием пакетов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо