Создание своего события

Страницы: 1
RSS
Создание своего события, локальный callback
 
Можно ли в qlua создать свое событие, которое можно было бы перехватывать другим или несколькими скриптами? Создать и, понятно, обработать.
 
Здравствуйте,
Правильно ли я понял, речь идет про взаимодействие между двумя разными скриптами?
 
Здравствуйте, Сергей!
Совершенно верно. Двумя и более.
 
Цитата
Viktor MMM пишет:
Совершенно верно. Двумя и более.
Просто так, такое событие сделать не получится.
Нам известно что пользователи решают задачу использованием Named pipe.
Также кто-то даже написал отдельную dll которая использует Name Space.
Но проще всего использовать простое чтение/запись из файла

Поделиться ссылками на примеры не могу, так как это сторонние проекты.
 
Сергей, понял. Спасибо.
 
Цитата
Sergey Gorokhov пишет:
так как это сторонние проекты.
вот именно. ваша задача, как разработчиков, обеспечить данный функционал в qlua и в квике в частности так, чтобы пользователям не приходилось для этого использовать сторонние проекты. Даже в игровых движках эта проблема решена через использование cvars (консольные переменные) и возможность создавать "native callbacks" - т.е. свои коллбеки, которые будут доступны из других скриптов. Если вы будете говорить, что мол де, "то игровые движки, а то торговый терминал" - то на самом деле, на уровне кода, невелика разница. и более того, если бы вы (не конкретно именно вы) разработчики, обращали бы больше внимание на использование зарекоммендовавших себя современных технологий - то и не было бы долгих 15-ти лет "сизифова труда".
 
Добрый день.
Если Вы расскажете подробнее что именно нужно реализовать, то мы рассмотрим это пожелание. Пока в голову приходят только именованные события. Что такое  "native callbacks" не очень понятно.
 
Цитата
Michael Bulychev пишет:
Что такое"native callbacks" не очень понятно.
а что тут может быть непонятно? даже если перевести этот термин дословно - то трудно ошибиться.
на примере алерта: создаём алерт на некоторое своё событие (скажем, какая-то комбинация изменения параметров ТТП или ещё, что-нибудь). Регистрируем его в квике. далее, если в каком-либо скрипте нам нужно изменить поведение этого коллбека - мы пишем под него обработчик (подписываемся на этот коллбек). если мы не хотим, чтоб после выполнения этого колбека его обрабатывали другие скрипты - мы пишем, что-то вроде plugin_stop:
http://forum.quik.ru/messages/forum10/message302/topic79/#message302

насчёт глобальных (в данном случае, межскриптовых) переменных то, что мешает вам изначально встроить в сам квик нечто подобное уже написанное swerg-ом
 
Код
 return 0; //если мы хотим, чтобы этот эвент обрабатывался другими скриптами;
return 1;//если мы хотим, чтоб после обработки этого эвента другие скрипты его не обрабатывали
return 2;//если мы хотим, чтоб скрипт остановил свою работу
 
На мой взгляд, все это можно реализовать и сейчас используя корутины.
 
ну понятно. ничего нового я не услышал
 
Цитата
Michael Bulychev пишет:
На мой взгляд, все это можно реализовать и сейчас используя корутины.
А не могли бы показать пример как то, что мне нужно реализовать, раз это сделать можно. [USER=21][/USER]
 
в данном случае, он имеет ввиду: не имей 100 скриптов, а имей 1 НО!!! с корутинами. насчёт корутин и как их использовать - написано здесь: http://quik2dde.ru/viewtopic.php?id=131
 
Цитата
sam063rus пишет:
ну понятно. ничего нового я не услышал
Да что тут сложного-то?

Завели флаг. Для простоты пусть это будет файл.

далее натравливаете на этот файл корутину , которая сопровождает этот файл. (крутится в цикле и на каждой итерации проверяет существование файла или его содержимое и делает yield).

С нужной периодичность эту корутину оживляете.
Ну просто же.

Если хочется покрасивше - возможностей миллион, включайте фантазию.


Не стоит ждать от разработчиков, чтобы они вот такие хотелки всовывали в qlua. В чем проблема такое сварганить самому?

Не нравится файл - проблем нет - С++ в руки и обмен в резидентной программе ддл-ки. Нет С++ - через сом-объект.

Все это не нравится - поднимите именованные пайпы
Пайпы - не устраивают - сокеты вам в руки.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
s_mike@rambler.ru, понимаю, конечно, что не мне адресовано Ваше сообщение, но если б разработчики реализовали то, о чем шла речь у меня, и задокументировали, то мне бы, не программисту, было бы проще сделать некоторые вполне адекватные вещи. Конечно, каждый должен заниматься своим делом, нечего мне лезть в эту тему для себя, когда есть программисты. Но с другой стороны, есть и другие заинтересованные лица, которые хотят, чтобы народу было по-больше на рынке, чтоб больше людей в квике копались и т.д. Вот на балансе этих интересов и развивается продукт. Как может)
 
И мне вот кажется, что отсутствие глоб. переменных какой то архаизм.. Вэлс 4 и тот поддерживает. Через это глобальное поле можно было бы общаться между скриптами напрямую, а не через ж.. файлы. Вот что-что, но этого я не ожидал от продукта, внедренного недавно. События - есть, ура, двинулись. Глоб. переменных нет. Приехали.
 
Цитата
Viktor MMM пишет:
чтоб больше людей в квике копались и т.д.
а вот этого разработчикам совсем не надо. они так сильно (на грани паранойи) трясутся/переживают над своим qchart.dll (взят для примера), что как панического страха боятся включить его полную поддержку в qlua. Если кто до сих пор не понял/не знает - это их плагин, отвечающий за рисование графиков. помимо рисования графиков, привязанных ко времени - он также позволяет делать и независумую ось абсцисс, т.е. привязать её к совершенно другому источнику (например, так можно строить улыбку волатильности). НО!!! для всех нас, так сказать биомассы рядовых трейдеров - они не посчитали нужным этого делать, придумав для нас лишь жалкое подобие интерфейса упакованное в отдельную песочницу под названием lua-индикаторы.
 
Кирилл, давайте сбавим немного эмоции.
qchart.dll не является "плагином", у этой библиотеки пока нет необходимого интерфейса чтобы сделать ее поддержку в Lua
 
Цитата
Michael Bulychev пишет:
не является "плагином"
если квик благополучно может работать и без него (qchart.dll) - то это плагин и есть. просто у него в отличии от ваших других плагинов нет главной интерфейсной функции, а просто все его основные функции выведены наружу.
Цитата
Michael Bulychev пишет:
у этой библиотеки пока нет необходимого интерфейса чтобы сделать ее поддержку в Lua
но тем не менее, это не помешало вам сделать stratvolat.dll его использующий (на полную катушку) и продавать, зарабатывая на нём деньги.
И не говорите мне, что это стоит для вас великого труда сделать для него очередной lua-враппер для нас.
Опять же, вы говорите "нет интерфейса..." (за 15-то лет...) - ну так сделайте его, или это тоже для вас "обстоятельства непреодолимой силы"?
---
Михаил, я конечно понимаю, что вы работаете в компании и не все ваши ответы на вопросы совпадают с реальной вашей точкой зрения (в виду политкорректности) НО!!! согласитесь, поставьте себя на наше место:
для нас вы создали 15 лет назад квик, после этого прошло 15 лет и что мы имеем?
а имеем мы вот что: квик и qlua в частности: напоминает тот далёкий "пирожок", который надо ещё суметь достать с "полки". он вроде бы и есть но, как говорится, "в приглядку чая не напьёшься". Если до сих пор непонятно о чём это я - есть мультик-басня: "Лиса и журавль".
 
Скрытый текст

Скрытый текст
Страницы: 1
Читают тему
Наверх