101

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

Синее выделение - не убирается. И заменить цвет этого выделения в текущей версии - никак.

102 (2014-03-14 21:24:25 отредактировано Arhn)

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

1) А возможно lua скрипт в dll закотать?
2) Как программно выставить заявку на покупку, продажу (по определенной цене или по рыночной) или выставить стоп? Посмотрев [url=https://quik2dde.ru/viewtopic.php?id=39]этот пример[/url] я так и не смог понять как …? И где можно почитать про такие функции как SendLimitOrder (в QLUA.chm я не нашел)?

103 (2014-03-14 22:24:45 отредактировано swerg)

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

Arhn пишет:

1) А возможно lua скрипт в dll закотать?

Здесь я бы попросил поподробнее задачу описать.
Буквально напрямую - нет (ну в реалиях QUIK), во всяком случае мне не удалось придумать; но можно весь функционал Lua-скрипта реализовать полностью в виде dll, правда "стартовый" скрипт, подгружающий эту dll всё же - понадобится.
Если кто-то придумает трюк как обойтись без этого стартового скрипта - было бы здорово.

Еще вариант - "закриптовать" Lua-скрипт - это если надо скрыть его текст. Ну если про это речь.


Arhn пишет:

2) Как программно выставить заявку на покупку, продажу (по определенной цене или по рыночной) или выставить стоп?

Любые заявки - это отправка транзакций через вызов sendTransaction().
[url=http://forum.qlua.org/forum4.html?sid=794b314dee97e5266c98aac372659b46]Вот здесь[/url] парни делают толковую библиотеку именно про трейдинг; в ней есть готовый удобный код отправки разных транзакций.

104

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

swerg пишет:

Здесь я бы попросил поподробнее задачу описать.

Я хотел выложить программу, но без возможности её редактировать

swerg пишет:

Любые заявки - это отправка транзакций через вызов sendTransaction().
[url=http://forum.qlua.org/forum4.html?sid=794b314dee97e5266c98aac372659b46]Вот здесь[/url] парни делают толковую библиотеку именно про трейдинг; в ней есть готовый удобный код отправки разных транзакций.

Спасибо

105

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

Сделал разряженный стакан и никак не могу сделать так чтобы лучшая покупка/продажа были всегда видны ? У меня если цена уходит вверх/вниз, то цена заходит за видимую часть таблицы.
Подскажите пожалуйста, как сделать так чтобы таблица (всегда или по клику мышки) показывала определенную строку(и)? Может для стакана используется другой элемент?
Спасибо.

106

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

Помогите с ListView. Ни как не могу понять как этот элемент использовать. Выходит сообщение "...attempt to call field 'ListView' (a nil value)".

107

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

ну или помогите прикрутить [url=http://sourceforge.net/projects/vclua/files/latest/download?source=navbar]эту dll-ку[/url]

108

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

При использовании vcl.dll в терминале QUIK могут возникать ошибки, приводящие к падению терминала с созданием дампа. Код исключения при этом может быть c0000090. Ошибка носит "плавающий" характер, может где угодно при операциях с плавающей точкой и довольно трудно локализуется.
Причины и способы лечения подробно разобраны по следующим ссылкам:

  • [url]http://stackoverflow.com/questions/20521608/floating-point-number-conversion-horror-is-there-a-way-out[/url]

  • [url]http://blogs.msdn.com/b/dougste/archive/2008/11/12/random-and-unexpected-exception-flt-divide-by-zero-and-exception-flt-invalid-operation.aspx[/url]

  • [url]http://digital.ni.com/public.nsf/allkb/E6A73825E57FCD9F862570DD005E594F[/url]


admin: Михаил, спасибо за сообщение.
Будем посмотреть )

109 (2014-08-19 23:46:21 отредактировано Arhn)

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

Научите, пожалуйста, как подключить [url=http://sourceforge.net/projects/vclua/files/vclua-v0.5.0/]новою dll-ку[/url] к Quik?

110

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

Arhn,
в самом первом сообщении в этой теме написано как устанавливать. Думаю, что ничего измениться не должно было.
Или что-то не получается?
Кстати, чего там нового в новой версии?

111

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

Хочу использовать ListView

112

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

Есть ведь Grid, вроде суть та же

113

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

День добрый, отличный ресурс, много полезного и помощи, спасибо!!!
И мне вот подскажите плз, можно циклом задать столбцы в Grid? Типа такого, но так не работает.

 grid = VCL.StringGrid(form)
 grid._ = { width=300, height=300, RowCount = 40, AutoEdit = False, FixedCols = 0, FixedRows = 1, Flat = True }
    gridtab={ 
          ["Первый"]="0xFF0000", 
          ["Второй"]="0x00FF00"
   } 
 grid:SetColParams({

   for i, v in pairs(gridtab) do 
          {Width=50, Alignment="taRightJustify", Color=v, Title={Color=v, Caption=i, Alignment="taCenter"}}; 
   end

 })

114

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

И ещё просьба ,  в Вашей кавер-версии VCLua не срабатывает
width, height = VCL.GetScreenSize()
Не могли бы Вы её добавить или подсказать правильный синтаксис для Вашей версии?
Спасибо.

115 (2014-08-26 22:09:41 отредактировано Arhn)

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

swerg пишет:

Есть ведь Grid, вроде суть та же

А возможно сделать так чтобы лучшая цена продажи и покупки была видна всегда (не уходила за пределы видимой части стакана и при приближении к краю стакана централизовался)?

116

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

GREEN_X5 пишет:

И ещё просьба ,  в Вашей кавер-версии VCLua не срабатывает
width, height = VCL.GetScreenSize()

Похоже на сайте давно не обновлял и все еще на основе 0.3.3 версии выложена библиотека.
Непременно обновлю!

117 (2014-08-27 06:01:29 отредактировано swerg)

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

Arhn пишет:

А возможно сделать так чтобы лучшая цена продажи и покупки была видна всегда (не уходила за пределы видимой части стакана и при приближении к краю стакана централизовался)?

С позиционирование грида в нужную точку - не просто это. Но надо подумать, наверное надо на Panel его положить а там уже перемещать...

Подумал: по-моему, неправильный взгляд на всё это. Собственно почему лучшая цена уходит на видимую границу? потому что программист её рисует за видимой границей.
Может есть смысл просто изменить алгоритм заполнения строк Grid данными стакана?
Например, пусть видно 20 строк. Тогда от середины вверх откладываем 10 покупок, от середины вниз откладываем 10 продаж, вот и все. Остальное отбрасываем. Если покупок или продаж меньше 10 - очищаем оставшиеся ячейки.
Вот и получится, что лучшая покупка/продажа всегда видны.

118 (2014-08-27 12:45:09 отредактировано Arhn)

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

swerg пишет:
Arhn пишет:

А возможно сделать так чтобы лучшая цена продажи и покупки была видна всегда (не уходила за пределы видимой части стакана и при приближении к краю стакана централизовался)?

С позиционирование грида в нужную точку - не просто это. Но надо подумать, наверное надо на Panel его положить а там уже перемещать...

Подумал: по-моему, неправильный взгляд на всё это. Собственно почему лучшая цена уходит на видимую границу? потому что программист её рисует за видимой границей.
Может есть смысл просто изменить алгоритм заполнения строк Grid данными стакана?
Например, пусть видно 20 строк. Тогда от середины вверх откладываем 10 покупок, от середины вниз откладываем 10 продаж, вот и все. Остальное отбрасываем. Если покупок или продаж меньше 10 - очищаем оставшиеся ячейки.
Вот и получится, что лучшая покупка/продажа всегда видны.

Приходится иногда ползунок двигать чтобы посмотреть заявки ушедшие за видимую часть в разряженном стакане. Думал ListView решит проблему.

119

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

swerg пишет:
GREEN_X5 пишет:

И ещё просьба ,  в Вашей кавер-версии VCLua не срабатывает
width, height = VCL.GetScreenSize()

Похоже на сайте давно не обновлял и все еще на основе 0.3.3 версии выложена библиотека.
Непременно обновлю!

Спасибо за новую библиотеку! Но к сожалению в ней тоже GetScreenSize() не работает. Выслал ответным письмом версию с работающей функцией, посмотрите на досуге?
Еще вопросы.
2. На vclua.99k.org лежит luaversion 5.2, но QLUA не может прочитать этот модуль, ругается, не посмотрите в чем там проблема?
3. Можно передать аргумент при обращению к обработчику формы?

mainMenu = VCL.MainMenu(mainForm,"mainMenu")
mainMenu:LoadFromTable({
    {caption="Пауза", onclick="Pause"}, -- здесь аргумент прикрепить можно?
    })

120

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

Кстати, у кого форма закрывается с последующей неизвестной ошибкой, посоветую вот сюда слип приткнуть. Мне реально помогает.

function OnFormClose(Sender, CloseAction)
  OnClose()
end

function OnClose()
  is_run = false
  sleep(500)
  mainForm:Release()
end

121

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

2. На vclua.99k.org лежит luaversion 5.2, но QLUA не может прочитать этот модуль, ругается, не посмотрите в чем там проблема?

В QUIK, в QLua вшита версия Lua 5.1
Версия 5.2 это не просто обновление, а капитально несовместимая версия.
Соответственно все библиотеки для Lua надо брать предназначенные для 5.1 версии.

3. Можно передать аргумент при обращению к обработчику формы?

Нет, это же просто объявление, что такая-то функция будет обработчиком, а не срабатывание этого обработчика; формат обработчиков - строго фиксированный.

122 (2014-08-27 20:41:38 отредактировано GREEN_X5)

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

Понял по совместимости версий, спасибо!

Помогите пожалуйста по обработчику для VCL.ToggleBox. Со всеми формами разобрался, с этой встрял, вынос мозга! Синтаксис тут - [url]http://vclua.luaforge.net/vclua-0.3.2.html#ToggleBox[/url]
Вот так только первый раз отрабатывает нажатие, а отжатие и далее - банан африканский! (((

ActivedButton = VCL.ToggleBox(mainForm,"Переключатель чтоб он сдох")
ActivedButton._={Caption="Включить", OnEnter="ToggleON", OnExit="ToggleOFF" }

function ToggleON(Sender)
        ActivedButton.Enabled=true
        ActivedButton.Caption ="РАБОТАЕТ"
end

function ToggleOFF(Sender)
        ActivedButton.Enabled=false
        ActivedButton.Caption ="Отключено"
end

или подскажите как увидеть что передается через Sender? OnChange() вроде отрабатывает, но как понять в отработчике в какое положение сейчас кнопка пошла?

123 (2014-08-27 21:25:04 отредактировано swerg)

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

require "vcl"

mainForm = VCL.Form("mainForm")
mainForm._= { position="podesktopcenter", height=200, width=300, Caption="test" }

ActivedButton = VCL.ToggleBox(mainForm,"ActivedButton")
ActivedButton._={Caption="Init", OnChange="ActivedButton_OnChange", Top=10, Left=10}

mainForm:Show()

function ActivedButton_OnChange(Sender)
  if ActivedButton.Checked then
    ActivedButton.Caption = "Check"
  else
    ActivedButton.Caption = "Un Check"
  end
end

is_run = true    
function main()
  while is_run do
    sleep(50)
  end
end

function OnStop()
 is_run = false
 mainForm:Release()
end

А вы использовали какие-то не для той задачи свойства:

  • OnEnter - событие получения фокуса ввода

  • OnExit - событие потери фокуса ввода

  • Enabled - запрет/разрешение менять состояние контрола

124 (2014-08-27 21:23:29 отредактировано swerg)

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

Вопрос про динамическое добавление столбцов в грид. Это вот так делается:

grid = VCL.StringGrid(form)
grid._ = { width=300, height=300, RowCount = 40, AutoEdit = False, FixedCols = 0, FixedRows = 1, Flat = True }

gridtab={ 
          ["Первый"]="0xFF0000", 
          ["Второй"]="0x00FF00"
        }

for i, v in pairs(gridtab) do 
    grid:AddCol(
       { Width=50, Alignment="taRightJustify", Color=v, 
         Title={Color=v, Caption=i, Alignment="taCenter"} }
    )
end

125

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

swerg пишет:

А вы использовали какие-то не для той задачи свойства:

  • OnEnter - событие получения фокуса ввода

  • OnExit - событие потери фокуса ввода

  • Enabled - запрет/разрешение менять состояние контрола

Не подскажете как правильно обрабатывать переключатель? Или где найти такое как у Вас развернутое описание свойств?
Можно конечно в обработчике вести свой параллельный ключ-переключатель, но он будет фактически не связан с формой, не правильно это как-то... Или забить на этот переключатель?
За динамический ввод столбцов спасибо!
Насчет GetScreenSize - он был ещё в третьей оригинальной версии, у Вас наверное где-то утерялся при пересборке..