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

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

"Кажется, есть возможность устранить мигание другим способом. " - какой способ вы нашли чтобы побороть эффект исчезновения формы?

 
Алексей Барбашин:

"Кажется, есть возможность устранить мигание другим способом. " - какой способ вы нашли чтобы побороть эффект исчезновения формы?

давно не программировал под Делфи, но помню долго мучался с корректной работой форм с вызовом dll пока не попробовал написать проект на Делфи с использованием KOL – (Key Objects Library) - все работало как часы

ЗЫ: подозреваю и если окна создавать из под Winows Api, а не использовать стандартные формы Делфи, то тоже будет корректно работать

KOL — Википедия
  • ru.wikipedia.org
Тип Разработчик Написана на Операционная система Последняя версия Лицензия Сайт KOL (Key Objects Library) — библиотека объектных типов для программирования в среде Delphi и Lazarus. Основная цель KOL — уменьшение размера конечной программы (Win32, GUI) в 5-10 раз по сравнению с тем, что дает библиотека VCL. Поддерживаются все 32-разрядные...
 
Igor Makanu:

давно не программировал под Делфи, но помню долго мучался с корректной работой форм с вызовом dll пока не попробовал написать проект на Делфи с использованием KOL – (Key Objects Library) - все работало как часы

ЗЫ: подозреваю и если окна создавать из под Winows Api, а не использовать стандартные формы Делфи, то тоже будет корректно работать

Я пишу на c#. А хендл владельца задаю с помощью win API. Форма ставится на график и остается там, но она "зарисовывается" самим графиком и возникает эффект мигания. ((

 
Алексей Барбашин:

Я пишу на c#. А хендл владельца задаю с помощью win API. Форма ставится на график и остается там, но она "зарисовывается" самим графиком и возникает эффект мигания. ((

я на Делфи писал раньше, в основном прикладные примеры, давно это было, но точно помню, что решил сделать .dll на Делфи, вызвать ее из MT4, а в dll захотелось мне форму с кнопкой

когда я использовал стандартную форму Делфи, то был такой же эффект как у Вас, а когда использовал KOL – (Key Objects Library)  - то не было проблем

я уже и не помню, но врятли я передавал при вызове dll что-либо, кроме массива с ценами, ни хендлы ни чего не использовал, нагуглил статью вот примерно такую:

http://delphiru.ru/resources/48-adding-forms-to-a-dll

 и сделал, потом вместо стандартных форм  Делфи переделал проект под KOL и даже крестик закрытия формы работал как положено

Добавление форм в DLL
  • Serge
  • delphiru.ru
Как отобразить форму в приложении, которая содержится в DLL. Это довольно простой процесс. Создание DLL Сначала в этом проекте нужно создать DLL, которая будет содержать форму. Чтобы сделать это, следуйте за этими шагами: Начните новый проект, используя File -> New DLL, у Вас будет шаблон DLL, в котором Вы должны создать форму, для этого...
 
Igor Makanu:

я на Делфи писал раньше, в основном прикладные примеры, давно это было, но точно помню, что решил сделать .dll на Делфи, вызвать ее из MT4, а в dll захотелось мне форму с кнопкой

когда я использовал стандартную форму Делфи, то был такой же эффект как у Вас, а когда использовал KOL – (Key Objects Library)  - то не было проблем

я уже и не помню, но врятли я передавал при вызове dll что-либо, кроме массива с ценами, ни хендлы ни чего не использовал, нагуглил статью вот примерно такую:

http://delphiru.ru/resources/48-adding-forms-to-a-dll

 и сделал, потом вместо стандартных форм  Делфи переделал проект под KOL и даже крестик закрытия формы работал как положено

Спасибо, буду изучать

 
Igor Makanu:

я на Делфи писал раньше, в основном прикладные примеры, давно это было, но точно помню, что решил сделать .dll на Делфи, вызвать ее из MT4, а в dll захотелось мне форму с кнопкой

когда я использовал стандартную форму Делфи, то был такой же эффект как у Вас, а когда использовал KOL – (Key Objects Library)  - то не было проблем

я уже и не помню, но врятли я передавал при вызове dll что-либо, кроме массива с ценами, ни хендлы ни чего не использовал, нагуглил статью вот примерно такую:

http://delphiru.ru/resources/48-adding-forms-to-a-dll

 и сделал, потом вместо стандартных форм  Делфи переделал проект под KOL и даже крестик закрытия формы работал как положено

Я посмотрел примеры.. мне кажется это не совсем то, что я хочу реализовать. Там речь идет о простой форме, самостоятельной. А у меня цель именно привязать форму к конкретному графику.

 
Алексей Барбашин:

Я посмотрел примеры.. мне кажется это не совсем то, что я хочу реализовать. Там речь идет о простой форме, самостоятельной. А у меня цель именно привязать форму к конкретному графику.

да, я так и делал - форма была откреплена от графика, в то время не было в mql4 возможности сделать форму с кнопкой, а так хотелось

но сейчас штатными средствами mql можно весьма неплохую графику делать - стоит ли в dll это делать?

 
Igor Makanu:

да, я так и делал - форма была откреплена от графика, в то время не было в mql4 возможности сделать форму с кнопкой, а так хотелось

но сейчас штатными средствами mql можно весьма неплохую графику делать - стоит ли в dll это делать?

Ну не совсем штатными. Я уже имею опыт разработки форм средствами mql... какие бы продвинутые библиотеки не были, это все равно получается не очень хорошо. Но у меня вопрос не столько в форме, столько в функционале, который однозначно пока нет возможности реализовать средствами mql, это вебсокеты. Приходится писать dll. А если уж писать dll, то тогда и форму там прописать. 

 
Алексей Барбашин:

 пока нет возможности реализовать средствами mql, это вебсокеты. Приходится писать dll. А если уж писать dll, то тогда и форму там прописать. 

дело конечно Ваше, но я всегда оставляю более половины времени на разработку интерфейса в своих программах, т.е. написать код это половина работы, а создать пользовательский интерфейс работы не меньше

я склоняюсь к мнению, что сейчас реально на mqlсделать неплохой интерфейс - этим нужно пользоваться

если считаете, что можно лучше сделать интерфейс - тогда делайте все на стронем языке программирования, а mql используйте только для торговых команд

 
Алексей Барбашин:

Ну не совсем штатными. Я уже имею опыт разработки форм средствами mql... какие бы продвинутые библиотеки не были, это все равно получается не очень хорошо. Но у меня вопрос не столько в форме, столько в функционале, который однозначно пока нет возможности реализовать средствами mql, это вебсокеты. Приходится писать dll. А если уж писать dll, то тогда и форму там прописать. 

я тут на форуме уже представлял : сделал и раздаю бесплатно, библиотеку ATcl, прицепил целый скриптовый движок с его инфраструктурой (и вебсокетами в том числе) http://nektomk.ru/atcl:start

ветка форума вот она : https://www.mql5.com/ru/forum/224745

Экспериментально даже Tk с его окнами и виджетами работает. Чтобы совсем захорошело, надо немного разобраться с оконными сообщениями виндовс, когда забирать/когда нет..
Сейчас текущие работы закончу, и продолжу. Уж больно "вкусная" штуковина получилась - море возможностей..Ради эксперимента даже генерацию и компиляцию модулей "на лету" из С++ пробовал, прямо из MT4

ATcl
  • nektomk.ru
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.