Владимир написал: Сергей, Во-первых, уберите нафиг RGB - эта, с позволения сказать, функция возвращает трёхбайтовое число, старший байт которого - B, а младший - R. Во-вторых, в SetColor добавьте ещё два аргумента: -1, он же QTABLE_NO_INDEX.
Владимир написал: Сергей, Во-первых, уберите нафиг RGB - эта, с позволения сказать, функция возвращает трёхбайтовое число, старший байт которого - B, а младший - R. Во-вторых, в SetColor добавьте ещё два аргумента: -1, он же QTABLE_NO_INDEX.
С RGB понял идею - передавать сразу значения, не используя доп функцию. Кстати, есть уже опыт, что использование RGB может вызывать ACCESS VIOLATION или это вопрос к разработчикам?
С QTABLE_NO_INDEX не понял Мне же нужно закрасить конкретную ячейку и значит нужно передать конкретные значения. По количеству вроде везде всех аргументов хватает.
Просьба прислать полный код используемого скрипта, запуская который сталкиваетесь с ошибкой AV для анализа
Такая же ошибка. Удалось воспроизвести ее и выделить. на QUIK 9.4.2.1 и 9.5.0.42 и 9.2.0.121 LUA 5.4.1
Полный код:
Код
dofile(getScriptPath() .. "\\dll_test_crash.lua")
is_run = true
function OnInit()
KomCentrID = AllocTable()
AddColumn (KomCentrID, 10, "Описание/Действие", true, QTABLE_STRING_TYPE,60)
AddColumn (KomCentrID, 20, "Результат", true, QTABLE_STRING_TYPE,20)
CreateWindow(KomCentrID)
SetWindowPos(KomCentrID,1100,250,400,500)
end
function main()
while is_run do
Body()
end
end
function OnStop()
is_run = false
end
Код
function Body()
sleep(100)
InsertRow(KomCentrID,1)
SetCell(KomCentrID, 1, 10, "COMPLETE")
SetCell(KomCentrID, 1, 20, "COMPLETE")
SetColor(KomCentrID,1,20,RGB(217,255,217),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0)) --зеленый
end
Через примерно 100-200 вызовов Body(), QUIK либо закрывается, либо ошибка ACCESS VIOLATION