Ясно, надеюсь, в будущем я смогу на таком уровне вклиниваться в программы. Помнится, года 2-3 назад я с помощью AutoIt много чего делал, в том числе пытался подхватить таблицы квика, но не получилось. Только названия окон перехватывал и все. Дальше не смог продвинуться. Но одно я пока что для себя решил. Работать средствами, которые дают разработчики квика задача очень специфическая. Но хоть что то есть, и на том спасибо. Большое и человеческое.
Значит вам не нужно. Я ж не пожелание озвучиваю, а спрашиваю - как сделать.
Не проще, отвечаю на ваш вопрос. Не проще. Сегодня мне эти не нужны, завтра я бы их добавил, а рядом еще таблицу и туда какие-то основные. Условия выбора не формализовать. А скопом - вы представляете сколько инструментов? Наверняка да. Сортировать? Конечно можно. Все можно сделать как-то. Через что-то. А можно проще, ибо простота решения стоит не мало. Лично для меня, уже уставшего от постоянных костылей.
да, я так и делаю. Можно логику забить. Они все называются логично, по правилам. Есть некторые тонкости, например пока опцион не стал "сего месяца" в нем нет промежуточных страйков. И лучше былоб взять ТТП, зайти в редактировать, выделить все, удалить, вставить из какой то середины обновившейся список, например и сохранить изменения. Еще и порядок если надо немного поменяв. Закрыл ТТП, мой скрипт подхватил и создал свою. Вот и вся замена. Все наглядно. А так то вопрос в том, чтобы была возможность редактировать существующую ТТП. Добавить в неё свои лау-стобцы, обращаться к строкам ТТП. Не надо было б городить огород с использованием второй ТТП. Но, судя по всему, это еще не огород. Это так, грядочка. А огород меня ждет в ответе разработчиков.
Да, именно. Как-то назвать/обозначить/прописать существующую ТТП и с ней работать как с таблицей ЛУА. Ну или хотя бы только читать из неё логигко GetCell. Смысл в том, что я хочу сделать информер. Таблицу с интрументами и добавить в ней свои столбцы. Я могу, конечно, прописать ручками все нужные мне инструменты и каждый месяц их менять. А это не акции, а опционы по разным страйкам, которых как бы выразиться ... много. Так вот, если б я, используя функционал квика набил бы эту таблицу инструментами и еще какими-нибудь параметрами, а потом включил бы скрипт, а он создал нужную мне таблицу, было б отлично. Если б я мог свою, луа-таблицу заполнить данными как в квике ТТП, вопрос бы не возник. Но мне слабо такое сделать. А каждый месяц лопатить массив в скрипте или через DDE туда-сюда данные кидать, приводить.. на долго такого информера не хватит)
getParamEx тащит любые сведения, которые есть или могут быть в ТТП. А мне надо чтобы я создал ТТП, а потом её, созданную просматривал. И, например, мог сделать скриптом копию этой таблицы. Заглянул, считал данные из ТТП из нужной ячейки и нужного столбца, перекинул в свою таблицу. Так яснее?
перебрать то можно много чего. А я хочу задать входные значения, сортировку, используя функционал квика. Чтобы ручками не вбивать источники, поля и т.д. А это штатно только ТТП. Потом с этими данными работать своим скриптом. Если честно, не очень то верится в успех мероприятия.. Чувствую, пойдут советы слать куда-нить по дде, оттуда своим скриптом тащить данные. А лучше слать их черех DDE сразу в свой скрипт. Если б я сейчас таким функционалом владел, то вопросов бы про ТТП не задавал)
Добрый день! Сходу не нашел как обратиться к существующей ТТП? Например создаю таблицу, называю её, наполняю и оставляю в квике. А мой скрипт на луа в квике эту таблицу подхватывает и, используя данные в ней, производит операции, или, для простоты, дублирует эту таблицу. Реально такое сделать не ломая квик, не парся поток и т.д?
Николай, что то я засомневался, а разве можно получить данные с ТВС не открывая её? Грузит она комп, конечно, нещадно. Но вот например ТВС передается по DDE в скрипт. Скрипт работает с ней. Возможно ли тот же функционал для моего скрипта получить не открывая ТВС? Подскажите, пожалуйста, если есть такое решение.
Сергей, добрый день! А действительно, чуть подробнее можете изложить, что теоретически можно сделать с DLL и клуа? Через DDE я так понимаю можно на выбор слать таблицы - одну, вторую, пятую и т.д. потом их обрабатывать. А что можно через DLL сделать?
Звучит заманичво, но ничего не понял. Какой движок? Если есть желание подсказать, то разъясните, пожалуйста. Очень уж интересно что имеется ввиду. А так да, здорово звучит!
Всегда когда вижу подобные ответы, хочется спросить, а где учат так отвечать? Ведь всегда одна и та же схема. Сам бы так хотел научиться. Тебе говорят - как так? Что за хрень? Скажи, как надо? А в ответ - лада седан.
По-моему никто не против новых колбеков. Будь их хоть 100. Лишь бы вот тот самый сотый, последний, как-то обозначался и однозначно интерпретировался. Баклажан!
По мне так все понятно излагает Старатель. И так же понятно, что Сергей Горохов в данном случае на вопрос не отвечает. Для убедительности теперь и мне, наверное, нужно цитат добавить пачку? Сергей, бывает подклинивает всех. Я - не исключение, Вы - тоже. Ваши коллеги решили Вас одного оставить разбираться с этой темой? Это повинность такая? Чтобы потом пользователи не стали сравнивать слова Вас и Вашего коллеги? Проясните уже, наконец, про nil и 0. Хоть кто-нибудь. Можно инкогнито)
с определением разобрался. Если метку удалить, то её номер сохраняется в системе, но значения полей в таблице - nil. По ним и можно выяснить наличие метки. Надеюсь, что в ближ. время ответите по основному вопросу ветки.
function _SetLab(par1)
local Q = par1
_ScreenTable = {}
_ScreenTable = _GetScreenArray(t_id)
_log(COMMENT_ALL..LOG_TABULATOR.."Текущая строка = ".._ScreenTable[Q][1]..";".._ScreenTable[Q][2]..";".._ScreenTable[Q][3]..";".._ScreenTable[Q][4]..";".._ScreenTable[Q][5])
if _ScreenTable[Q][OPERATION_STOLB+1] == TEXT_DIRECTION_1 and _ScreenTable[Q][STATUS_STOLB+1] == TEXT_COMMAND_2 then
_log(COMMENT_ALL..LOG_TABULATOR.." Set Текущая метка Green")
LabelLine[Q]["IMAGE_PATH"] = pathGREEN
end
if _ScreenTable[Q][OPERATION_STOLB+1] == TEXT_DIRECTION_2 and _ScreenTable[Q][STATUS_STOLB+1] == TEXT_COMMAND_2 then
LabelLine[Q]["IMAGE_PATH"] = pathRED
_log(COMMENT_ALL..LOG_TABULATOR.."Set Текущая метка RED")
end
LabelText[Q]["TRANSPARENCY"] = 0
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение метки № "..tostring(Q).."("..tostring(LABELNUMLINE[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMLINE[Q],LabelLine[Q])))
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение текста метки № "..tostring(Q).."("..tostring(LABELNUMTEXT[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMTEXT[Q],LabelText[Q])))
end
_GetScreenArray(t_id) создает массив из таблицы если метка зеленая, то в массиве меток
Код
LabelLine[Q]["IMAGE_PATH"] = pathGREEN
устанавливается новое значение. Остальное остается как есть. Далее SetLabelParams срабатывает и я на графике вижу, что эта метка изменила вид. Но двигать её я больше не могу.
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение текста метки № "..tostring(Q).."("..tostring(LABELNUMTEXT[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMTEXT[Q],LabelText[Q])))
При этом метка меняется. Например цвет, прозрачность, или файл метки - все отрабатывает. Зацикливания нет, скрипт дальше работает. На эране несколько меток. И если они были расставлены черз AddLabel, их можно двигать. А если над одной из меток поработал SetLabelParams - все. двигать не могу руками.
Весь скрипт не могу выложить. Если требуются уточнения, говорите, выложу части.
Не добился ответа с начала дня, может так смогу обратить внимание разработчиков?
После использования SetLabelParams метку не возможно сдвинуть с мета вручную. В докуметации об этом ни слова. Поясните, каким образом можно обойти этот баг? Или,если это не баг, то как правильно задавать новые параметры метки, чтобы ручная перестановка на графике сохранилась?
С изменениями разобрался. Осталось самое главное. Почему после применения SetLabelParams метку не возможно передвинуть вручную? Это баг или я не правильно использую? Разарлботчики, ответьте, пожалуйста.
У меня bmp. Попробую поиграть прозрачностью. Но мне в будущем надо будет менять метку на пунктирную, например. И прозрачность не поможет.
А как вы используете SetLabelParams? Ведь по моему опыту получается, что эта функция не работает. Метка не изменяется, более того становится не перетаскиваемой руками. Что-то не так делаю? Как вы меняете метку по ходу жизни скрипта?
Я думал, что если есть метка и я прописываю SetLabelParams, то после этой функции, если результат true, метка на графике преобразуется с учетом внесенных изменений. Может, разработчики ответят для чего SetLabelParams и как её использовать?
Вопрос появился. Как менять параметры метки? Через SetLabelParams вижу только то, что метка перестает передвигаться вручную. Я менял файл отображение метки. Отображение не изменилось)). Если удалять и ставить новую, то понятно все работает. Зачем тогда SetLabelParams? (True выдает по результату замены)
Хотелось бы, конечно, поменять параметр метки и увидеть на графике результат этих изменений без сокращения дальнейшего функционала. Это вообще возможно?
Мне нужны были только цифры, а нампад, например, преобразовывался в другие символы. Пришлось править.
Код
if par2 > 95 and par2 <106 then --цифры с нампада
if par2 == 96 then curstring = curstring.."0" end
if par2 == 97 then curstring = curstring.."1" end
if par2 == 98 then curstring = curstring.."2" end
if par2 == 99 then curstring = curstring.."3" end
if par2 == 100 then curstring = curstring.."4" end
if par2 == 101 then curstring = curstring.."5" end
if par2 == 102 then curstring = curstring.."6" end
if par2 == 103 then curstring = curstring.."7" end
if par2 == 104 then curstring = curstring.."8" end
if par2 == 105 then curstring = curstring.."9" end
...
end
Дмитрий, можете намекнуть на способ ввода в ячейку с клавиатуры? Готовый пример кода как-то стесняюсь спросить.. Не пойму принцип построения. Например пришел дабл клик. Выделить обозначить ячейку можно. Дальше что, зацикливать внутри события и ловить клавиши, а выходить из цикла при нажатии энтера? Но это какая - то ерунда. Циклить не желательно внутри колбэка. Что то я не понимаю. Подскажите, пожалуйста, или натолкните на верное решение, буду признателен.
Хотяяя))) может и есть. Я понял что готового решения нет. Лопатить длл-ки мне не по зубам. Чужую, из непроверенного источника так сходу побоюсь ставить.
Не знаю что и ответить. Получается, не готов. Да и подменить метку во время перетаскивания не получается. Так что необходимости в обработке клика отпускания нет.