swerg пишет:Помню же была нормальная книжка. Попалась:
Спасибо. Есть у меня даже русская версия где то, но перевод кривой.
Есть еще один вопрос. Я сейчас создаю массив(структуру или как здесь это называется) в onInit и ее передаю для создания пользовательской таблицы.
Column_Table = { -- Создаем список колонок таблицы.
{"Инструмент",QTABLE_STRING_TYPE,15,NAME},
{"Шаг цены",QTABLE_DOUBLE_TYPE, 12,tostring(PRICE_STEP)},
{"Точность",QTABLE_INT_TYPE, 12,tostring (PRICE_SCALE)},
{"Open", QTABLE_DOUBLE_TYPE, 10,tostring(Open)},
{"High", QTABLE_DOUBLE_TYPE, 10,MakeStringPrice(High)},
{"Low", QTABLE_DOUBLE_TYPE, 10,MakeStringPrice(Low)},
{"Close", QTABLE_DOUBLE_TYPE, 10,MakeStringPrice(Close)},
{"Volume", QTABLE_DOUBLE_TYPE, 15,tostring(Volume)},
}
Вот эту структуру передаю в функцию
function Table_init(t)
-- Создаем таблицу и присваиваем имена столбцов из переданного массива t.
local i = 0
local Table = AllocTable()
for i=1,#t,1 do -- Перебираем массив по строкам от первой до последней. Количество строк массива получаем #t
AddColumn(Table, i, t[i][1], true, t[i][2], t[i][3])
end
CreateWindow(Table)
SetWindowCaption(Table, "Отладочная таблица")
-- SetWindowPos(Table, 0, 10, 2500, 200)
InsertRow(Table, -1)
return Table
end
В данном случае все отлично работает. Но если обратить внимание, то четвертым столбцом идут переменные. НО! Здесь получается, что таблица создается, из переменных пишутся в нее значения и само собой больше не обновляются... Второй день ломаю голову как в этот столбец перед инитом вставить не значения переменных, а адрес переменной в памяти по которому и будут забираться значения и обновляться такой или подобной функцией?
-- Заполнение строки таблицы
function Table_row(row)
local i = 0
for i=1,#Column_Table,1 do
SetCell(t_id,row,i,Column_Table[i][4])
end
end
Отдельную структуру создавать неудобно.