Обновление пользовательской таблицы/окна

Страницы: Пред. 1 2 3 4 След.
RSS
Обновление пользовательской таблицы/окна
 
Запустил ваш код - также на работает. Каждый тик данные не обновляются.
 
Цитата
sav 312 написал:
Запустил ваш код - также на работает. Каждый тик данные не обновляются.
Даже больше скажу, чередовал наименования
SetWindowCaption(t_id, "ООО")
SetWindowCaption(t_id, "ОGО")
результата нет.
 
sav 312,
Возможно терминал чем-то нагружен?
К сожалению у нас догадки кончились.
Проблема не воспроизводится.

Изначально же, суть в том что в терминале окна перерисовываются раз в 50мс. И если скриптом обновлять таблицу чаще, то она не успевает обновляться, в результате происходит эффект заморозки.
Лечится это как уже говорили другие пользователи принудительной перерисовкой окна, либо увеличением sleep до значений больше 50.
 
Цитата
Sergey Gorokhov написал:
Возможно терминал чем-то нагружен?
Нет ничего лишнего. Один инструмент и один график. Скрипт тоже один.
Цитата
Sergey Gorokhov написал:
Лечится это как уже говорили другие пользователи принудительной перерисовкой окна
Это вариант работает, только окно постоянно активно и соответственно невозможно сделать активными другие окна.
Цитата
Sergey Gorokhov написал:
увеличением sleep до значений больше 50
Блин, ставил и 100 и 200 - в моем случае нет результата. В данный момент выделяю 2 строки поочередно и все обновляется каждый тик. Мигание правда достает, а так результат достигнут.
Да и забыл сказать стоит в main добавить строку обращения к графику по идентификатору т.е. чуть подгружаем скрипт и все сразу работает. Почему со sleep не прокатывает сам не пойму.
 
Цитата
Sergey Gorokhov написал:
Изначально же, суть в том что в терминале окна перерисовываются раз в 50мс.
Вот так если не окончательно понятно, то во всяком случае более-менее. У меня проблема воспроизводится как раз при слипе меньше 50. 45 еще нифига не работает, 50 уже более-менее тикает (иногда дергается). Квик свежий джуниор отсюда.
Или вы это раньше не писали или я пропустил )) Видимо из этой цифры и придется исходить. Приемлимых способов форсировать перерисовку окна я не вижу, на системные пинки от винды оно точно так же не реагирует.


Цитата
sav 312 написал:
SetWindowCaption
У мнея тоже ничего не дает, вчера еще пробовал. От нее впрочем и не ожидалось, капшн таки не клиентская часть окна, поэтому даже упоминать не стал.
 
Возникает мысль обновлять таблицы которые необходимо отображать на экране например 1 раз в 20 тиков, человек же все равно не разглядит быстрее. А то что нужно для работы роботу держать в другой таблице. Тоже костыль но он хотя-бы не будет много дополнительных ресурсов гонять.
 
Цитата
sav 312 написал:
Почему со sleep не прокатывает сам не пойму.

А он в принципе работает?
Т.е. если вообще написать
message("begin")
sleep(100500)
message("end")
что произойдет?

И уточните версию терминала.
 
Цитата
Sergey Gorokhov написал:
message("begin")sleep(100500)message("end")что произойдет?
Работает. Второе сообщение получил с нужной задержкой.
Цитата
Sergey Gorokhov написал:
И уточните версию терминала.
7.19.3.1
 
sav 312,
Идей нет.
Пришлите нам копию Вашего терминала (без ключей доступа) на адрес quiksupport@arqatech.com
 
sav 312,
Хотя есть идея попросить повторить на другом компьютере, если это возможно.
 
Цитата
Sergey Gorokhov написал:
Хотя есть идея попросить повторить на другом компьютере, если это возможно.
Да, конечно. Попробую минут через 40.
 
На другом компе со sleep 100 работает, а с SetWindowCaption также нет.
 
Цитата
sav 312 написал:
с SetWindowCaption также нет.
Мне вот интересно с чего возникало предположение что вообще может работать. Отображением заголовка окна разве сам оконный класс "заведует"? Я разумеется исходников не видел и не могу знать точно.
Но могу подтвердить что у меня тоже SetWindowCaption абсолютно ничего не дает.


Цитата
Sergey Gorokhov написал:
Изначально же, суть в том что в терминале окна перерисовываются раз в 50мс.
Еще такой к вам вопрос. Допустим я то что должно отображаться буду обновлять 2 раза в секунду, моему человеческому восприятию чаще и незачем. Судя по обсуждению можно считать что точно обновится, так?
 
Цитата
BlackBoar написал:
SetWindowCaption
Дошло на 3й час )))
Если тема темная то заголовки действительно рисует оконный класс и SetWindowCaption действительно форсирует отрисовку
А если тема стандартная то заголовки в компетенции венды и все как обычно.

Ну может кому-то будет полезно, мне лично темная тема просто не нравится. Но будем знать.
 
Цитата
BlackBoar написал:
Допустим я то что должно отображаться буду обновлять 2 раза в секунду, моему человеческому восприятию чаще и незачем. Судя по обсуждению можно считать что точно обновится, так?
Да верно.

Цитата
BlackBoar написал:
Если тема темная то заголовки действительно рисует оконный класс и SetWindowCaption действительно форсирует отрисовкуА если тема стандартная то заголовки в компетенции венды и все как обычно.
Вы правы, скрипт тестировался на темной теме.

Цитата
sav 312 написал:
На другом компе со sleep 100 работает, а с SetWindowCaption также нет.
С SetWindowCaption разобрались, см выше.
А вот что делать со sleep, к сожалению затруднимся что либо порекомендовать.
Пока только ясно что проблема локальная и связана с конкретным компьютером, скорей всего с процессором.
Но что это может быть, к сожалению идей нет.
 
Подниму страую тему.

На версии 8.6 в темной теме обновление окна скрипта происходит корректно при задержке 55 мс. и выше.
А в вот в светлой теме не помогает даже задержка 100 мс и выше. Окно обновлется только если его "подергать".

Приходится сидеть на темной теме, что некомфортно.
 
Забыл добавить, что в версии 8.4 все работает корректно в светлой теме.
 
Здравствуйте, Nikolay.

Правильно понимаем, что под "окно скрипта" - имеется ввиду таблица в рабочем месте, которая строится при помощи lua-скрипта?
Если так - то просьба уточнить, каким именно образом отслеживаете/задаёт время обновления, каким образом выполняете обновление таблицы?
Если возможно - просьба привести минимальный и достаточный для воспроизведения фрагмент скрипта, который бы позволял эффективно воспроизвести описываемое поведение.

Заранее большое спасибо!
 
Вот простейший код. Он уже приводился в этой ветке. Добавил вывод анимации для более наглядного представления.

При использовании темной темы все более менее плавно. Светлая - замирания окна таблицы.

Причем видно, что это происходит при подсвечивании ячейки таблицы.

Относительно помогает сгладить замирания - увеличение периода подсветки до 1000 мс.

Но в темной теме все плавно для 500 мс и 60 мс задержки основного цикла.

Код
local sec_code      = 'SRU0'
local class_code    = 'SPBFUT'

local sleep         = _G.sleep
local isRun         = true

local t_id          = nil

local SeaGreen      = 12713921  --  RGB(193, 255, 193) нежно-зеленый
local RosyBrown     = 12698111  --  RGB(255, 193, 193) нежно-розовый
local getParamEx    = _G.getParamEx
local GetCell       = _G.GetCell
local Highlight     = _G.Highlight
local SetCell       = _G.SetCell
local ds

function _G.OnParam(class, sec)
    if t_id and sec == sec_code and class == class_code then
        local last_price = tonumber(getParamEx(class_code,  sec_code, 'LAST').param_value) or 0
        local lp = GetCell(t_id, 1, 0).value or last_price
        if lp < last_price then
            Highlight(t_id, 1, 0, SeaGreen, 0, 1000)
        elseif lp > last_price then
            Highlight(t_id, 1, 0, RosyBrown, 0, 1000)
        end
        SetCell(t_id, 1, 0, tostring(last_price), last_price)
    end
end

local function CreateTable()

    t_id = _G.AllocTable()

    _G.AddColumn(t_id, 0, "price", true, _G.QTABLE_DOUBLE_TYPE, 15)
    _G.CreateWindow(t_id)
    _G.SetWindowPos(t_id, 90, 120, 170, 100)
    _G.InsertRow(t_id, 1)
    _G.InsertRow(t_id, 2)
end

local function Animate()
    local animation_symbol = "|"
    local curSymbol = 0
    local maxSymbols = 20
    return function()
        curSymbol = curSymbol + 1
        curSymbol = curSymbol>maxSymbols and 1 or curSymbol
        return string.rep(animation_symbol,curSymbol)
    end
end

function event_callback(_, msg)
    if (msg == _G.QTABLE_CLOSE) then
        isRun = false
    end
end

function _G.OnInit()
    CreateTable()
    _G.SetTableNotificationCallback(t_id, event_callback)
end

function _G.main()
    ds   = _G.CreateDataSource(class_code, sec_code, 1)
    isRun = ds ~= nil
    if ds then
        ds:SetEmptyCallback()
    end
    local GetNextAnimationSymbol = Animate()
    while isRun and ds do
        SetCell(t_id, 2, 0, GetNextAnimationSymbol(), 0)
        sleep(60)
    end
end

function _G.OnStop()
    isRun = false
    ds:Close()
    ds = nil
    if t_id and not _G.IsWindowClosed(t_id) then
        _G.DestroyTable(t_id)
    end
end
 
Цитата
Nikolay написал:
Причем видно, что это происходит при подсвечивании ячейки таблицы.
Относительно помогает сгладить замирания - увеличение периода подсветки до 1000 мс.
Да, Highlight, конечно жёстко тормозит вывод. Но у меня получается наоборот, чем меньше timeout в Highlight, тем плавнее обновляется вторая строка.
Надо делать так, как надо. А как не надо - делать не надо.
 
Я давно заприметил функцию UpdateRow в QLua. Что это за функция такая, что она делает?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Я давно заприметил функцию UpdateRow в QLua. Что это за функция такая, что она делает?
Это старая не публичная функция которая появилась в терминале версии 6.6.
К сожалению зачем она была добавлена уже никто не вспомнит, возможно для каких-то специфичных проектов.
Раз релиза ее не было, значит и использовать ее не следует.
 
Цитата
Nikolay написал:
Вот простейший код. Он уже приводился в этой ветке. Добавил вывод анимации для более наглядного представления.

При использовании темной темы все более менее плавно. Светлая - замирания окна таблицы.

Причем видно, что это происходит при подсвечивании ячейки таблицы.

Относительно помогает сгладить замирания - увеличение периода подсветки до 1000 мс.

Но в темной теме все плавно для 500 мс и 60 мс задержки основного цикла.

Код
   local  sec_code       =   'SRU0' 
 local  class_code     =   'SPBFUT' 

 local   sleep           =  _G. sleep 
 local  isRun          =   true 

 local  t_id           =   nil 

 local  SeaGreen       =   12713921    --  RGB(193, 255, 193) нежно-зеленый 
 local  RosyBrown      =   12698111    --  RGB(255, 193, 193) нежно-розовый 
 local   getParamEx      =  _G. getParamEx 
 local   GetCell         =  _G. GetCell 
 local   Highlight       =  _G. Highlight 
 local   SetCell         =  _G. SetCell 
 local  ds

 function   _G.OnParam (class, sec)
     if  t_id  and  sec  =  =  sec_code  and  class  =  =  class_code  then 
         local  last_price  =  tonumber( getParamEx (class_code,  sec_code,  'LAST' ).param_value)  or   0 
         local  lp  =   GetCell (t_id,  1 ,  0 ).value  or  last_price
         if  lp  <  last_price  then 
             Highlight (t_id,  1 ,  0 , SeaGreen,  0 ,  1000 )
         elseif  lp  >  last_price  then 
             Highlight (t_id,  1 ,  0 , RosyBrown,  0 ,  1000 )
         end 
         SetCell (t_id,  1 ,  0 , tostring(last_price), last_price)
     end 
 end 

 local   function   CreateTable ()

    t_id  =   _G.AllocTable ()

     _G.AddColumn (t_id,  0 ,  "price" ,  true , _G.QTABLE_DOUBLE_TYPE,  15 )
     _G.CreateWindow (t_id)
     _G.SetWindowPos (t_id,  90 ,  120 ,  170 ,  100 )
     _G.InsertRow (t_id,  1 )
     _G.InsertRow (t_id,  2 )
 end 

 local   function   Animate ()
     local  animation_symbol  =   "|" 
     local  curSymbol  =   0 
     local  maxSymbols  =   20 
     return   function ()
        curSymbol  =  curSymbol  +   1 
        curSymbol  =  curSymbol > maxSymbols  and   1   or  curSymbol
         return   string.rep (animation_symbol,curSymbol)
     end 
 end 

 function   event_callback (_, msg)
     if  (msg  =  =  _G.QTABLE_CLOSE)  then 
        isRun  =   false 
     end 
 end 

 function   _G.OnInit ()
    CreateTable()
     _G.SetTableNotificationCallback (t_id, event_callback)
 end 

 function   _G.main ()
    ds    =   _G.CreateDataSource (class_code, sec_code,  1 )
    isRun  =  ds ~ =   nil 
     if  ds  then 
        ds: SetEmptyCallback ()
     end 
     local  GetNextAnimationSymbol  =  Animate()
     while  isRun  and  ds  do 
         SetCell (t_id,  2 ,  0 , GetNextAnimationSymbol(),  0 )
         sleep ( 60 )
     end 
 end 

 function   _G.OnStop ()
    isRun  =   false 
    ds: Close ()
    ds  =   nil 
     if  t_id  and   not   _G.IsWindowClosed (t_id)  then 
         _G.DestroyTable (t_id)
     end 
 end   
Добрый день.

Проверили Ваш код.
Что на светлой, что на темной теме каких-то особых отличий не видим.

Цена везде обновляется без задержек, что касается второй графической строки, то она тоже одинаково себя ведет в обоих случаях.
Пришлите видео эффект на quiksupport@arqatech.com
посмотрим, как проявляется эффект.
 
Выложу сюда ссылку на видео. Инструмент SiU0.
https://yadi.sk/i/clNRFUtLln9k5A
 
Цитата
Nikolay написал:
Выложу сюда ссылку на видео. Инструмент SiU0.
https://yadi.sk/i/clNRFUtLln9k5A
Просьба уточнить, в чем именно проблема. Вторая строка не плавно работает?
 
И первая строка и вторая. Первая неравномерно обновляется, нет плавной подсветки. Вторая часто замирает.
На темной теме все намного плавнее. Вот, для наглядности:
https://yadi.sk/i/S-T2kh3s2u59hA
 
Цитата
Nikolay написал:
И первая строка и вторая. Первая неравномерно обновляется, нет плавной подсветки. Вторая часто замирает.
На темной теме все намного плавнее. Вот, для наглядности:
https://yadi.sk/i/S-T2kh3s2u59hA
Здравствуйте!

Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Пришлось добавить Highlight цветом фона при выводе, т.к. он заставляет обновить окно таблицы и все начинает плавно работать.
Костыль, но что делать.
 
Добрый день,
     
      Ошибка, описанная в данном инциденте, будет исправлена в одной из       очередных версий программы.
      Приносим извинения за причиненные неудобства.
QUIK clients support
 
Версия 8.7.1.13 данные обновляю раз в 2 секунды но если не дёргать окно то обновляются изменённые данные не сразу (раз в 10-15 секунд ) и кажется с каждым разом всё дольше.

SetSelectedRow(hTable,2)
SetSelectedRow(hTable,1)

работает исправно и заставляет перезагружаться, хотя хочется конечно без танцев с бубном и костылей.  
 
Здравствуйте,
Могли бы вы привести полный код вашей программы ?
 
Кто-нибудь обращал внимание, есть ли визуальная разница в скорости обновления ячейки в зависимости от порядка

SetCell
SetColor

или

SetColor
SetCell
?
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель, А что , бывает визуальная разница в скорости? К меня там мгновенно всё обновляется, а на порядок я никогда не обращал внимания. SetColor обычно первым идёт.
 
Цитата
Владимир написал:
бывает визуальная разница в скорости?
В этой ветке 80 сообщений об этом.
Надо делать так, как надо. А как не надо - делать не надо.
 
Учитывая, что
Цитата
Sergey Gorokhov написал:
в терминале окна перерисовываются раз в 50мс.
Цитата
Sergey Gorokhov написал:
Лечится это как уже говорили другие пользователи принудительной перерисовкой окна
и
Цитата
Nikolay написал:
замирания окна таблицы.
Причем видно, что это происходит при подсвечивании ячейки таблицы.
Цитата
Nikolay написал:
Пришлось добавить Highlight цветом фона при выводе, т.к. он заставляет обновить окно таблицы и все начинает плавно работать.
возможно и SetColor оказывает какое-то влияние.
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель,
Цитата
В этой ветке 80 сообщений об этом.
Серьёзно?! А у меня никогда никаких проблем не было. Бегло скользнул глазами - тут, похоже, опять какие-то микросекунды ловятся. А у меня обновление идёт раз в полторы секунды, при этом вряд ли кто-то работает с цветом больше меня. Вот скрин:
 
Прочитал тему. Поднимаю вопрос в 2022 году. Проблема как была, так и осталась. У меня вообще наипростейший скрипт - SetCell в main заполняет ячейки, без всяких там подсветок. Поставил как рекомендовали sleep(100) не помогает. Перепробовал разные задержки - ничего не меняется. Чтобы таблица обновилась нужно либо ткнуть мышкой в неё в любое место, либо навести курсор мыши на верхнюю часть окна с заголовком. По другому никак. Это не порядок. Проблему надо решать. Что хочу сказать разработчикам. Причина - не прорисовка окна. Насколько мне помнится, чтобы заставить окно перерисоваться принудительно, есть такая функция, UpdateWindow когда пишешь на C, она отправляет сообщение WM_PAINT непосредственно в процедуру указанного окна, обходя очередь приложения. Неужели нельзя для qlua разработчикам сделать аналог? У вас всё для этого есть. Квик создаёт окно таблицы для пользователя, у вас все хэндлы всех окон есть и окна таблицы пользователя тоже. Вот сама функция на C:
BOOL UpdateWindow([in] HWND hWnd);
Напишите же свою функцию для qlua и внутри неё воткните UpdateWindow. Вам это совсем просто сделать, так как вы знаете hWnd окна таблицы. А нам где его брать? Вобщем думаю вы можете это сделать. А то переписывал весь день с qpile скрипт на lua. переписал, а тут такой косяк. На qpile и то стабильней работает. Там выставил 1 сек период расчёта и хотя бы раз в секунду будет обновляться окно. Хотя заметил, что на qpile обновление окна тоже идёт только в самом конце скрипта независимо делаем мы add_item из мапа или нет, он только буфер таблицы заполняет, а непосредственно прорисовка окна в самом конце скрипта идёт. Надеюсь проблему решите.
PS. Вы разработчики саму программу quik на каком языке пишите?
 
Поддержка, ответьте пожалуйста на вопрос выше. Что конкретно сделать, чтобы обновлялось окно? Или сделаете функцию UpdateWindow?
 
Пробовал:
1) получать заголовок окна через GetWindowCaption и заново его же выставлять через SetWindowCaption - не помогает.
2) получать координаты окна через GetWindowRect и заново выставлять окно по тем же самым координатам через SetWindowPos - не помогает. При этом окно становится поверх всех окон, только наведёшь другое окно на него, как моё окно становится поверх наведённого, причём данные в окне как не обновлялись, так и не обновляются. Чтобы обновились - по прежнему нужно либо ткнуть в окно мышкой, либо навести её на заголовок окна.
3) пробовал тоже самое что и п.1, только ещё плюс менять координаты на 1 пиксель, затем возвращать обратно - тут вообще смех просто получается - окно дёргается туда-сюда, а результат точно такой же как в п.1
Решения на данный момент нет. Программирование на Lua теряет всякий смысл при выводе данных в таблицу. Данные обновляются только в буфере программы, а окно не перерисовывается. Что делать? Писать отдельную программу на C? Искать окно в недрах Windows? Получать его хэндл и отправлять принудительно окну сообщение WM_PAINT на перерисовку? Это извращение какое-то.
 
Цитата
Alexander написал:
Пробовал:
1) получать заголовок окна через GetWindowCaption и заново его же выставлять через SetWindowCaption - не помогает.
2) получать координаты окна через GetWindowRect и заново выставлять окно по тем же самым координатам через SetWindowPos - не помогает. При этом окно становится поверх всех окон, только наведёшь другое окно на него, как моё окно становится поверх наведённого, причём данные в окне как не обновлялись, так и не обновляются. Чтобы обновились - по прежнему нужно либо ткнуть в окно мышкой, либо навести её на заголовок окна.
3) пробовал тоже самое что и п.1, только ещё плюс менять координаты на 1 пиксель, затем возвращать обратно - тут вообще смех просто получается - окно дёргается туда-сюда, а результат точно такой же как в п.1
Решения на данный момент нет. Программирование на Lua теряет всякий смысл при выводе данных в таблицу. Данные обновляются только в буфере программы, а окно не перерисовывается. Что делать? Писать отдельную программу на C? Искать окно в недрах Windows? Получать его хэндл и отправлять принудительно окну сообщение WM_PAINT на перерисовку? Это извращение какое-то.
Пункт 3 не помог потому, что окно сдвигал на 1 пиксель туда-сюда, при этом не меняя размер самого окна, а только изменяя координаты его верхнего левого угла. А вот если координаты левого верхнего оставить прежними, а менять координаты правого нижнего на 1 пиксель туда-сюда(фактически меняя размер всего окна получается), то окно начинает таки обновляться как положено. Но работать так невозможно, потому что окно во-первых дёргается, а во-вторых всегда поверх всех окон, только перекроешь его другим окном, как оно опять сверху.
 
Я писал выше - вместе с обновлением текста ячейки вызываю Highlight - помогает.
 
Цитата
Nikolay написал:
Я писал выше - вместе с обновлением текста ячейки вызываю Highlight - помогает.
Да, точно. Попробовал использовать Highlight и действительно помогло! Спасибо. Но разрабам не помешает всё-таки сделать функцию UpdateWindow.
 
Цитата
Alexander написал:
, точно. Попробовал использовать Highlight и действительно помогло! Спасибо. Но разрабам не помешает всё-таки сделать функцию UpdateWindow.
Помогло то помогло, да вот только не совсем. Если подсвечивать строку, которая ушла из поля видимости, например скроллингом, то таблица опять перестаёт обновляться. Я сделал так, чтобы подсвечивалась любая строка на которую ткнуть мышкой. Получается, что чтобы заствить таблицу обновляться - сначала тыкаю в любую строку в таблице, она подсвечивается и таблица обновляется. Если таблица большая и делаешь скроллинг(прокрутку) содержимого таблицы, то как только подсвечиваемая строка уходит за пределы таблицы, т.е. исчезает из поля видимости, то тут же таблица обновляться перестаёт. И нужно опять тыкать на любую видимую строку в таблице. Это не практично. Лучшее решение как я и писал выше - нужна функция UpdateWindow, но поддержка категорически молчит по этому поводу.
 
Разработчики, ответьте же хоть что-нибудь! Так же добавляю новую информацию для размышления. Попробовал отправлять сообщения WM_PAINT в цикле с задержкой 100 мс непосредственно окну таблицы из другой программы(написал на C++). Дескриптор окна необновляемой таблицы можно увидеть через Spy++. Сначала просто его использовал. Потом сделал автоматический поиск дескриптора в программе через FindWindow и FindWindowEx начиная с родительского окна QUIK. Так вот отправка WM_PAINT непосредственно процедуре обработки сообщений окна таблицы никакого результата не даёт, хотя SendMessage проходит без ошибок. Так же если отсылать в цикле UpdateWindow - тоже результата нет. UpdateWindow так же срабатывает без ошибок. Косяк на стороне квика. Выходит, что окно получает WM_PAINT, но перерисовывает его с необновлённого буфера. SetCell-ы видимо обновляют один буфер, но есть ещё другой буфер из которого WM_PAINT рисует окно, так вот из первого буфера во второй информация не попадает, а она туда должна попадать с периодичностью хотя бы 100 мс, тогда и WM_PAINT будет обновлять окно. Разработчики готовы вникнуть в суть проблемы или нет?
 
Alexander, добрый день.

Приносим извинения за задержку с ответом.

Цитата
Alexander написал:
Лучшее решение как я и писал выше - нужна функция UpdateWindow
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
Anzhelika Belokur написал:
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Ещё добавляю информации. Как я и писал ранее удалось таки заставить обновляться таблицу используя функцию Highlight, но косяки остаются при уходе подсвечиваемой строки за пределы таблицы при прокрутке и надо опять подсвечтвать строку в поле видимости таблицы или тыкать в заголовок мышкой. А дополнение такое - если в таблице вывод идёт строковой переменной через SetCell и SetCell без последнего 4-го числового параметра, то Highlight не помогает и жутко тормозит, прокрутка таблицы идёт с лагом в секунды, а может и минуты. Поэтому, чтобы Highlight работала и заставляла принудительно обновлять таблицу, вызовы SetCell делаю с передачей ей 4-го параметра равного числовому значению, я использую 1, хотя можно и любое другое число, хоть ноль, лишь бы было число. Хотя по умолчанию это число при выводе строки не нужно. Вот такие вот особенности. Может поможет Вам разобраться в проблеме.
 
Цитата
Alexander написал:
Цитата
Anzhelika Belokur написал:
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Ещё добавляю информации. Как я и писал ранее удалось таки заставить обновляться таблицу используя функцию Highlight, но косяки остаются при уходе подсвечиваемой строки за пределы таблицы при прокрутке и надо опять подсвечтвать строку в поле видимости таблицы или тыкать в заголовок мышкой. А дополнение такое - если в таблице вывод идёт строковой переменной через SetCell и SetCell без последнего 4-го числового параметра, то Highlight не помогает и жутко тормозит, прокрутка таблицы идёт с лагом в секунды, а может и минуты. Поэтому, чтобы Highlight работала и заставляла принудительно обновлять таблицу, вызовы SetCell делаю с передачей ей 4-го параметра равного числовому значению, я использую 1, хотя можно и любое другое число, хоть ноль, лишь бы было число. Хотя по умолчанию это число при выводе строки не нужно. Вот такие вот особенности. Может поможет Вам разобраться в проблеме.
И ещё, если все вызовы SetCell будут с 4-м параметром числом и хотя бы один из них SetCell будет без этого параметра, то таблица обновляться не будет и будет подвисать, как только все SetCell-ы будут со всеми 4-мя параметрами, так начинает обновляться и не тормозит, но косяки с выходом подсвечиваемой строки за пределы видимости таблицы так и не пропадают.
 
Alexander, добрый день.

Для разбора описанных Вами проблем, нам нужны примеры скриптов, один с  4-мя параметрами, когда таблица будет обновляться, второй без этого параметра. Просьба прислать запрошенную информацию нам на quiksupport@arqatech.com со ссылкой на данную ветку форума.
 
Цитата
Anzhelika Belokur написал:
Alexander, добрый день.

Для разбора описанных Вами проблем, нам нужны примеры скриптов, один с  4-мя параметрами, когда таблица будет обновляться, второй без этого параметра. Просьба прислать запрошенную информацию нам на  quiksupport@arqatech.com  со ссылкой на данную ветку форума.
Все тонкости проблемы описаны выше и достаточно подробно. Нет никакого смысла отправлять примеры скриптов. Всё расписано до мелочей просто. Зачем примеры скриптов с SetCell с 4-мя параметрами и с тремя? С 4-мя это когда 4 параметра, 3 - это когда 3. Что тут не ясно то? Отсутствует последний параметр когда 3 параметра. Если будете реально разбирать проблему, то разработчики пусть читают эту тему, последние сообщения все. Они знают свою программу и lua. Если они прочитают что написао в теме, то всё им и так будет ясно. Вобщем если кто реально будет вникать в проблему из разработчиков, то прочитав тему и все мои сообщения, он всё поймёт.
 
 у SetCell 5 параметров
---------------------------------------1  ---------------2---------------3----------------4-----------------5-----------
BOOLEAN SetCell(NUMBER t_id, NUMBER key, NUMBER code, STRING text, NUMBER value)
если оставить 3 ,то что тогда будет обновлять ячейку?
----------------
Но спорящим видимо один ...
продолжайте
=======================
Страницы: Пред. 1 2 3 4 След.
Читают тему
Наверх