Как из скрипта открыть окно на нужной вкладке?

Страницы: 1
RSS
Как из скрипта открыть окно на нужной вкладке?
 
Добрый день.
При запуске скрипта должна открываться небольшая табличка с выводом данных. Открывается она по умолчанию на той же вкладке, где открыто окно "Доступные скрипты". Что сделать, чтобы она открывалась на нужной вкладке? Желательно на той вкладке, где открыт график с определенным идентификатором. Есть для этого какой-то метод?
 
Никак, но пожелание такое уже регистрировали, скорее всего.
 
Это достоверная информация, что никак? На чем она основана?
 
Добрый день,

Функционала, соответствующего Вашему описанию, в терминале действительно нет. Можем зарегистрировать пожелание от Вас на его добавление, регистрируем ?
 
Регистрируем
 
Здравствуйте!

Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и  сообщить Вам результаты анализа. Впоследствии, по результатам анализа,  будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Вася, это только начало длинного пути в который мы посланы разработчиками очень давно.
Не только с проблемой открытия таблицы в нужной вкладке, но и той что при перезапуске квика любая таблица открывается в последней открытой вкладке вместо нужной. Скоро отпразднуем 10-летний юбилей регистрации этих предложений.

Огромное спасибо Sverg и еще ребятам за то, что помогли частично закрыть эти проблемы.
Ниже функция которую я использую. Требуется библиотека w32
Код
function OpenTable(Name,kid,pos) -- функция открытия таблицы (kid) с координатами (pos) в нужной вкладке (Name)
   local mmes=""
   local hQuikWnd = GetQuikMainWindowHandle() -- handle главного окна QUIK
   local hTabWnd = 0 --  handle окна вкладок
      if hQuikWnd > 0 then
         hTabWnd = w32.FindWindowEx(hQuikWnd, 0, "SysTabControl32", "")
         if hTabWnd ~= 0 and not w32.IsWindowVisible(hTabWnd) then -- отображение вкладок отключено
            hTabWnd = 0
         end
      end
   if hTabWnd > 0 then --  вкладки в терминале отображаются
      local prevIdx = w32.TabCtrl_GetCurFocus(hTabWnd)  --  индекс текущей активной вкладки
      local idxGr = w32.TabCtrl_GetItemIndexByText(hTabWnd, Name) -- индекс заданной вкладки
      if idxGr >= 0 then -- вкладка найдена
         w32.TabCtrl_SetCurFocus(hTabWnd, idxGr) -- переключение на найденную вкладку
         local txt = w32.TabCtrl_GetItemText(hTabWnd) --  название текущей активной вкладки
         mmes="   Вкладка " .. tostring(txt)
         CreateWindow(kid)
         SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
         w32.TabCtrl_SetCurFocus(hTabWnd, prevIdx) -- назад на исходную вкладку
      else
         CreateWindow(kid)
         SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
         local txt = w32.TabCtrl_GetItemText(hTabWnd)
         mmes="   Вкладка не найдена. Текущая" .. tostring(txt)
      end
   else -- вкладки не отображены, открываем в текущей
      CreateWindow(kid)
      SetWindowPos(kid, pos.a, pos.b, pos.c, pos.d)
      mmes="   Вкладка текущая"
   end
   return mmes
end
 
Вот здесь все описано
https://quik2dde.ru/viewtopic.php?id=329
 
О, спасибо!
Страницы: 1
Читают тему
Наверх