QLua. Как определить, открыта-ли таблица скрипта? Как сделать кнопки в таблице? Такое определение не работает if IsWindowClosed(t_id)==false then t = CreateWindow(t_id) end
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
IsWindowClosed — возвращает true только, если окно закрыто.
Используйте SetTableNotificationCallback для установки функции, в которую будут валится некоторые сообщения от таблицы. Там есть — флаг QTABLE_CLOSE – закрытие таблицы. При закрытии таблицы, можете снова открывать окно.
kvazar, В момент запуска ты сам создаешь таблицу CreateWindow. Пока не создал, таблица не создалась. В функции init или main создаешь таблицу, а дальше мониторишь, не закрылась ли она. Если закрылась, опять открываешь.
Александр, спасибо. Скажите пожалуйста, а как узнать денежное состояние (размер прибыли или убытков) по инструменту(фьючерсу)? Наверно с помощью функции getFuturesLimit?
kvazar, я под «кнопку» отвел отдельную ячейку и тап левой кнопкой мышки и это работало.
по закрытию окна — использовал такую конструкицию.
function main() --основная функция скрипта.
if IsWindowClosed(table_data) then
is_run=false
return
end
while is_run do
sleep(150)
if isConnected() == 1 then
robot()
end
end
end
function OnStop() --функция остановки скрипта.
is_run = false
end
ну при изменении переменных — делайте изменение ячеек таблицы.
через SetCell записываете в ячейку новую таблицу.
либо делаете отдельную процедуру, где пробегаете по переменным и перезаполняете ячейки таблицы.
у меня сделано обновление значений ячеек в коде изменения переменных.
Eldar Shaymardanov, описка. Но вот ни как не могу решить вопрос: при запуске скрипта всегда запускается новая таблица, а можно ли сделать, что бы оставалась старая?
kvazar, нет, нельзя сохранить старую таблицу. потому, что идет инициализация переменной только в этом скрипте.
НО! ты можешь выгрузить в файл нужные тебе данные и при новом открытии скрипта загрузить их.
Используйте SetTableNotificationCallback для установки функции, в которую будут валится некоторые сообщения от таблицы. Там есть — флаг QTABLE_CLOSE – закрытие таблицы. При закрытии таблицы, можете снова открывать окно.
event_table = {
[QTABLE_LBUTTONDBLCLK] = «Левый даблклик»,
[QTABLE_RBUTTONDBLCLK] = «Правый даблклик»,
[QTABLE_CLOSE] = «Закрыли таблицу»
}
function table_str(t_id, msg, par1, par2) --функция обрабатывает двойные щелчки в таблице робота
--par1 номер строки. par2 номер колонки
if (par1 == 1) and (par2 == 9) and (msg == QTABLE_LBUTTONDBLCLK) then
table_str — это коллбек SetTableNotificationCallback.
по закрытию окна — использовал такую конструкицию.
function main() --основная функция скрипта.
if IsWindowClosed(table_data) then
is_run=false
return
end
while is_run do
sleep(150)
if isConnected() == 1 then
robot()
end
end
end
function OnStop() --функция остановки скрипта.
is_run = false
end
через SetCell записываете в ячейку новую таблицу.
либо делаете отдельную процедуру, где пробегаете по переменным и перезаполняете ячейки таблицы.
у меня сделано обновление значений ячеек в коде изменения переменных.
fx=1
InsertRow(t_id, 2); SetCell(t_id,2--[[№строки]], 0--[[№ячейки]], «изменился FX»)
InsertRow — а зачем ты добавляешь строку?
НО! ты можешь выгрузить в файл нужные тебе данные и при новом открытии скрипта загрузить их.
Только зарегистрированные и авторизованные пользователи могут оставлять ответы.
Залогиниться
Зарегистрироваться