![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RTTI + DLL [D5]
ASH © (2005-02-21 15:21:00)Добрый день. У меня возникла проблема с определением типа объекта (A is TSomeClass), указатель которого передается в DLL. С чем это может быть связано? (ShareMem прописан)
ASH (2005-02-21 16:32:00) [1]>Vlad_ri
Да это помогает, я так сначала и дела - просто меня интересовала суть баги :-)
>Семен Сорокин
Спасибо, нада попробовать
Семен Сорокин (2005-02-21 16:18:00) [2]
> ASH © (21.02.05 15:57) [11]
> Нет не подменяю, иначе модальное окно не получается модальным,
> как быть?
Почему? Вот код:
Procedure ShowDLLForm(AppHandle: HWND); stdcall;
begin
if AppHandle = 0 Then
AppHandle := GetActiveWindow;
Application.Handle := AppHandle;
try
with TDLLForm.Create(Application) do
try
ShowModal
finally
Free
end
except
on E: Exception do
Application.HandleException(E)
end;
Application.Handle := 0;
end;
Vlad_ri (2005-02-21 16:13:00) [3]А это тоже не проходит?
if xxx.ClassName = 'TSomeClass' then
...
ASH (2005-02-21 16:00:00) [4]Нет не подменяю, иначе модальное окно не получается модальным, как быть?
ASH (2005-02-21 15:59:00) [5]Нет не подменяю, иначе модальное окно не получается модальным, как быть?
ASH (2005-02-21 15:58:00) [6]Нет не подменяю, иначе модальное окно не получается модальным, как быть?
ASH (2005-02-21 15:57:00) [7]Нет не подменяю, иначе модальное окно не получается модальным, как быть?
Семен Сорокин (2005-02-21 15:54:00) [8]
> ASH © (21.02.05 15:46) [8]
> Вот еще вопрос, почему в главном меню окна не работают горячие
> клавиши, если это окно запускается из DLL? (оно к томуже
> модальное)
Application.Handle подменяешь?
Юрий Зотов (2005-02-21 15:54:00) [9]> ASH © (21.02.05 15:46) [8]
Скорее всего, потому, что независимо скомпилированная DLL имеет еще и свой собственный Application (а также Screen, Session и прочие глобальные объекты).
ASH (2005-02-21 15:46:00) [10]Вот еще вопрос, почему в главном меню окна не работают горячие клавиши, если это окно запускается из DLL? (оно к томуже модальное)
ASH (2005-02-21 15:44:00) [11]>Юрий Зотов
Любопытно, ни когда не думал об этом, огромное спасибо! Это то, что нада :-)
ASH (2005-02-21 15:42:00) [12]>Семен Сорокин
или через ком-объекты :-) спасибо
Юрий Зотов (2005-02-21 15:42:00) [13]> ASH © (21.02.05 15:39) [4]
Я очень на это надеюсь...
:о)
А чего бы VMT не быть общей, если она останется в коде пакета, но не войдет ни в код Exe, ни в код DLL?
ASH (2005-02-21 15:39:00) [14]Ну конечно же первым :-)
Спасибо, Юрий. А что если использовать пакеты, то VMT пакета будет общим для EXE и DLL?
Семен Сорокин (2005-02-21 15:38:00) [15]2ASH
как вариант можно попробовать использовать интерфейсы.
Юрий Зотов (2005-02-21 15:29:00) [16]ShareMem тут ни при чем. Если Exe и DLL скомпилированы независимо, то один и тот же класс в каждом из них - это два разных класса, каждый со своей VMT. Поэтому IS и не проходит.
Может помочь компиляция Exe и DLL с run-time пакетами.
Skier (2005-02-21 15:24:00) [17]
> ShareMem прописан
первым прописан ?