Тема: Проблема с обновлением данных в таблице созданной из Lua (Решено)
Уже 3 часа пытаюсь понять в чем причина. Не обновляются данные в таблице, пока не проведу по ней мышью.
Код уж совсем простой и тут какие-то у меня не понятки вышли. Может кто сталкивался с такой проблемой. Данные через message() идут нормально, а вот в таблице не обновляются пока окно таблицы не получит какое-либо сообщение
Сам код:
-- Переменны для замены на данные хранящиеся в настройках скрипта
local secCode = "MMZ4"
local atrID = "MXI_ATR"
local priceID = "MXI_PRICE"
--Переменные для замены на данные получаемые из терминала
local digit = 2
--Переменные глобальных таблиц и окон
local tableMain = nil
local hwndMain = nil
local isRun = true
function main()
message("Hello. This is MambaBot",1)
while isRun do
if tableMain ~= nil then
if IsWindowClosed(tableMain) then
isRun = false
end
end
sleep(1000)
end
message("MambaBot has stopped")
end
function OnParam(class, sec)
if(class=="SPBFUT" and sec==secCode) then
if tableMain ~= nil then
--Обновляем данные в ячеках главной таблицы
SetCell(tableMain, 2, 1, getInfoParam("SERVERTIME"), 0)
--message(getInfoParam("SERVERTIME"))
local atrVal, count, legend
atrVal, count, legend = getCandlesByIndex(atrID, 0, getNumCandles(atrID) - 1, 1)
SetCell(tableMain, 7, 1, string.format("%." .. digit .. "f", atrVal[0].close), atrVal[0].close)
local priceCandleVal
priceCandleVal, count, legend = getCandlesByIndex(priceID, 0, getNumCandles(priceID) - 1, 1)
print(count)
SetCell(tableMain, 3, 1, string.format("%." .. digit .. "f", priceCandleVal[0].open), priceCandleVal[0].open)
SetCell(tableMain, 4, 1, string.format("%." .. digit .. "f", priceCandleVal[0].high), priceCandleVal[0].high)
SetCell(tableMain, 5, 1, string.format("%." .. digit .. "f", priceCandleVal[0].low), priceCandleVal[0].low)
SetCell(tableMain, 6, 1, string.format("%." .. digit .. "f", priceCandleVal[0].close),
priceCandleVal[0].close)
message(string.format("%." .. digit .. "f", priceCandleVal[0].close))
end
end
end
function OnInit(script_path)
tableMain = AllocTable()
AddColumn(tableMain,0,"param",true,QTABLE_STRING_TYPE,12)
AddColumn(tableMain,1,"value",true,QTABLE_STRING_TYPE,12)
hwndMain = CreateWindow(tableMain)
SetWindowCaption(tableMain,"MambaBot Main")
local rowNum = 1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"Sec code",0)
SetCell(tableMain,rowNum,1,secCode,0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"Time",0)
SetCell(tableMain,rowNum,1,"00:00:00",0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"Open",0)
SetCell(tableMain,rowNum,1,"0.0",0.0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"High",0)
SetCell(tableMain,rowNum,1,"0.0",0.0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"Low",0)
SetCell(tableMain,rowNum,1,"0.0",0.0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"Close",0)
SetCell(tableMain,rowNum,1,"0.0",0.0)
rowNum = rowNum+1
InsertRow(tableMain,-1)
SetCell(tableMain,rowNum,0,"ATR value",0)
SetCell(tableMain,rowNum,1,"0.0",0.0)
rowNum = rowNum+1
end
function OnStop(flag)
if tableMain ~=nil then
DestroyTable(tableMain)
end
isRun = false
return 100
end
Это всего лишь набросок будущего робота, просто на скоряк кодил, вспоминал как работать с таблицами и получением данных