Как создать окно-форму в mt Dll с помощью Delphi? - страница 2

 
elritmo:

Luptator , скажи а почему ты три раза вызываешь GetParent

Как я понимаю ты поднимаешься в иерархии окон на три выше ? Только вот зачем?

h_wnd:=GetParent(chart_hwnd);
if(h_wnd>0) then
GetWindowText(h_wnd,PAnsiChar(capt),7);
h_wnd:=GetParent(h_wnd);
h_wnd:=GetParent(h_wnd);

Писал давно. Еле вспомнил. (Ещё раз убедился в том, что нужно писать комментарии в коде.) Как я уже говорил, мне нужно было отображать в окне картинку. Предварительно иерархию окон я исследовал утилитой Spy++(Она входит в состав Visual Studio).Если родительским окном является окно графика, то при его обновлении обновляется и моё окно. При частом изменении цены происходит эффект мигнания. Поэтому я не привязал не к окну графика, а к его родителю.
Кажется, есть возможность устранить мигание другим способом.
Кстати, начал проверять библиотеку и обнаружил у себя ошибку. Когда вешаешь несколько моих индикаторов на несколько графиков, то при удалении этих индикаторов падает терминал.
 

В индикаторе у меня так и продолжает работает на миг появится моё окно и пропадает. Даже если сделать по твоему методу.

Но видимо есть какая то разница вызывать из индикатора или из эксперта функцию из длл которая показывает окно.

Хотя ShowMessage показывает диалогове окно в любом случае э то тоже окно типа диалог.

 
elritmo:

Luptator , скажи а почему ты три раза вызываешь GetParent



 


Sergey_Murzinov, спрашивай в этой теме если что интересует



Все отлично разобрался.
 

Danke!

спасибо!
 
elritmo >>:

В индикаторе у меня так и продолжает работает на миг появится моё окно и пропадает.

Можно вот так сделать: Запускается Exe-шник. Exe-шник создает окно (можно Stay On Top).

Ваша Dll ищет окно и использует сообщение WM_COPYDATA, чтобы передать данные.

 
Подскажите, а как сделать наоборот, то есть передавать из екзешника данные через dll в советник?
 

тоже запускается форма и пропадает

как победить то? 

 
harbor:

тоже запускается форма и пропадает

как победить то? 


  сделать ее модальной
 
сделал модальной и в отдельном потоке, теперь все нормально работает, скрипт работает в цикле и получает данные с кнопок в dll 
 
harbor:
сделал модальной и в отдельном потоке, теперь все нормально работает, скрипт работает в цикле и получает данные с кнопок в dll 

А разве модальное окно не приостанавливает работу программы?

Причина обращения: