251

Re: Визуальный интерфейс VCLua в QUIK

Flagrum пишет:

Нет, не объемы сделок по каждому инструменту, а именно интенсивность поступающей информации по выбранным инструментам. Подобно бару, отражающему загрузку процессора.

Отношение объемов или частоты поступления данных к временным промежуткам? Замеряйте по таймеру. Значение в volume.

252

Re: Визуальный интерфейс VCLua в QUIK

Есть кто живой или с апреля-20 никого? Не нашел никакой документации по QVCLua кроме скудных примеров из распространяемого VCLua, есть с кем посоветоваться?

253

Re: Визуальный интерфейс VCLua в QUIK

svd1572, вы вопрос сразу задавайте.
Тогда и ответ, вероятно, будет.

254

Re: Визуальный интерфейс VCLua в QUIK

Ну в том и вопрос, не найти никакой документации.

Ну подробнее, тогда так:
1.MessageDlg, по запросу Google, позволяет найти примеры, где окно типа Confirmation, Information и Error; кнопки могут быть Yes,No,Cancel.  Это все варианты? Если MessageDlg запустить некорректно, то он напишет, что должно быть до 4-х аргументов. Четырех...
2. Если тупо перебрать таблицу (for-next), возвращfемую "button", то, just for example, в ней можно найти function - Handle. В описаниях, найденных мной для VCLua, метод Handle отсутствует не только для button, он отсутствует в принципе.

Я, похоже, что-то не то читаю. Признателен буду и за ответы на эти вопросы, но глобальный один: где прочитать нормальную документацию по функциям и свойствам этого QVCLua? Нельзя же все время смысл функции и ее аргументы искать google-samples.

255 (2021-03-06 19:41:58 отредактировано iforts)

Re: Визуальный интерфейс VCLua в QUIK

https://sourceforge.net/projects/vclua/


http://files.luaforge.net/releases/vclu … CLua-0.3.5

https://quik2dde.ru/viewtopic.php?id=26

256

Re: Визуальный интерфейс VCLua в QUIK

Простите, но эти ссылки значатся как прочитанные. Даже открыл заново. Но в них нет, ни объяснения 4-го аргумента MessageDlg, ни зачем у "button" есть "handle". Если это связано с моей невнимательностью, я буду рад, что наконец нашел свои ошибки.

Спасибо, что уделили время.

Буду признателен за помощь

257 (2021-03-07 08:10:28 отредактировано swerg)

Re: Визуальный интерфейс VCLua в QUIK

Еще документация по Lazarus или Delphi многое прояснит. По сути все тоже самое в VCLua, т.к. эта обёртка в большинстве случаев просто переносит свойства/методы компонентов VCL в Lua, нюансы лишь по синтаксису, адаптированному к Lua; тут часто приходится смотреть исходник VCLua, чтобы понять как именно.

function MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;

С точностью до синтаксиса вот справка: http://www.delphibasics.ru/MessageDlg.php
Вам 4-й параметр и не нужен. Не будете же вы в самом деле реализовывать еще и Help для пользователя вашего скрипта smile

PS
Еще про 4-й параметр MessageDlg, из справки Lazarus:

The HelpCtx parameter is not currently implemented and should be set to zero

Так что на осмысление 4-го параметра вовсе можно забить, ведь QVCLua скомпилирована именно Lazarus'ом.

258

Re: Визуальный интерфейс VCLua в QUIK

Спасибо. Действительно очень признателен за ответы, правда пригодились. Описания функций можно найти в Lazarus и Delphi.

Извиняюсь за назойливость, но для особо одаренных можно еще уточнить.

Если взять работающий тестовый (не в смысле из теста:) алгоритм, который 1) рисует окно до входа в main и 2) удаляет окно вне main либо в OnStop, а затем его не меняя нарушить 1) (например, просто передвинуть function main() выше whateverQVCLForm:Show() либо всей инициализации формы) или 2) , то все виснет. OnStop при этом все равно отрабатывает (закрывает форму и исполняет message("Form freed")).

Вообще, желание было, чтобы по отработке события Lua таблицы рабочего места QUIK рисовалось диалоговое окно по типу стандартного окна ввода заявки. То есть мне не нужно это окно до инициализации main() и закрывать я его надеялся многократно независимо от OnStop(). Как бы не приходит в голову мысль, куда бежать. Может направите?

259

Re: Визуальный интерфейс VCLua в QUIK

Важно: никогда не обращайтесь к QVcl из main() (ну кроме может быть чтения свойств): не создавайте окна, не меняйте их свойства и т.д. Все остальное должно нормально работать.

svd1572 пишет:

желание было, чтобы по отработке события Lua таблицы рабочего места QUIK рисовалось диалоговое окно по типу стандартного окна ввода заявки. То есть мне не нужно это окно до инициализации main() и закрывать я его надеялся многократно независимо от OnStop(). Как бы не приходит в голову мысль, куда бежать.

В нужном месте вставьте вызов
myForm:Show()

Когда форму надо закрыть - вызовете
myForm:Close()

Вообще говоря если форма - это диалог, где вы вводите данные и нажимаете Ok - то открыть ее даже правильнее
myForm:ShowModal()

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

260

Re: Визуальный интерфейс VCLua в QUIK

что то сильно сложно,
создал форму, и по ходу меняешь свойство Visible?
нужно не забывать, что main не обязательно заканчивает свою работу после вызова OnStop.

261

Re: Визуальный интерфейс VCLua в QUIK

Спасибо.

По поводу OnStop, я считал, что принудительная остановка произойдет через промежуток времени, который вернет OnStop, либо время по умолчанию, если только сам main() не завершится к этому времени.

Про ShowModal я тоже думал. Правда просто из main(). Работает все вроде корректно (или я что-то не понимаю?). Что я не учел, это то, что callback'и событий QUIK мне, похоже, все равно остаются доступны, именно это меня остановило от дальнейших размышлений на эту тему. Возможно, это действительно оптимальный вариант.

Создать форму заранее и менять в ней отображаемые элементы (по крайнем мере с label и caption я пробовал) в зависимости от того, куда мышью кликнул, а также ее visibility тоже вариант. Но какой-то он не очень красивый (форма не пригодится каждый раз), думаю, при его реализации вылезут еще какие-нибудь нюансы, плюс результатом ее работы может быть sendTransaction.

Спасибо еще раз. Есть над чем подумать и поработать.