Блог им. HOME

Не академик в QLUA, а потому просто спрашиваю знающий народ про DestroyTable/

Существует ли альтернатива стандартному DestroyTable?

Сегодня протестил 8.8 — версию КВИКа.
Destroy… выбивает терминал. Инфо-сообщение примерно такое: «Неожиданная ошибка. Примите извинения».

Спасибо заранее.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
817 | ★2
9 комментариев
Альтернативы не видел. Раньше работало? В курсе, что DestroyTable должно запускаться до завершения OnStop()? 
avatar
Я луёй занимаюсь только 3-й год. Ни разу не работала эта функция. Раньше 7.2 — версии не проверял, правда.
На форуме АРКИ с 14 года висит вопрос «Доколе?..»
Надеюсь на светлые головы, ибо моя пока «встала».
avatar
Только что проверил на 8.7:
DestroyTable() прекрасно работает.

Что-то у вас с логикой в коде.
avatar
Винни Пух, родной!
Никакого особого кода нет (у меня на изыски знаний не хватает):

function close_w(t_id)

DestroyTable(t_id)

end
...
...
...
(вызов)
close_w(id)
...
...
function main()
.
.
end

function OnStop()
.
.
end

Поделитесь, пожалуйста, что как Вы запускаете «дестрой»?
avatar
Eugene Bright, 

function main ()

local Table = AllocTable()

AddColumn(***)
****
CreateWindow(Table)
SetWindowCaption(Table, «RTS»)
SetWindowPos(Table, 500, 500, 600, 400)
InsertRow(Table, -1)

while IsRun do
*******
end

DestroyTable(Table)

end

В Table запихивается id таблицы через AlloсTable
Чтобы закрыть просто пишешь команду DestroyTable(Table)

avatar
Винни Пух, всё так же, но есть разница!
Я вызываю «дестрой» не из-под main().
У меня вызов происходит из колл-бэк_функции.
«Слушатель» колл-бэка находится, как и полагается, внутри while-do-end головной функции main():

function event_callback (i_id, msg, par1, par2)
...
close_w(t_id) — вызов «дестроя» для закрытия другой таблицы
...
end

.
.
.
function main()
...
SetTableNotificationCallback(t_id, event_callback)
...
end

Это существенно?

avatar
Винни Пух, всё-таки ты — молодец!
Заставил еще раз проверить свои знания и внимательность.
В 7.27-версии запустил скрипт. DestroyTable работает, но не из всех мест.
Функции обратной связи, прописанные в main() с помощью SetTableNotificationCallback() на ту же таблицу, блокируют закрытие таблицы, которую «слушает» main().

В «Руководстве...» написано:

ВАЖНО! Недопустим вызов функций Clear и DestroyTable для t_id внутри функции обратного вызова f_cb, назначенной на таблицу с данным t_id.

(по-русски эту мысль сразу не понял, но «методом тыка» отключил некоторые вызовы DestroyTable() и нашел, что он работает, но не ото всюду...)
avatar
Eugene Bright, я просто уснул, т.к. утром тренировка. Извиняюсь за прерванный диалог. Но вижу Вы сами разобрались. Мое уважение, такому упорству можно позавидовать =)
avatar
Винни Пух, сердечно благодарю за поддержку!
А насчет упорства всё очень просто: я — древний старикашка и делать мне больше всё равно нечего.)))
avatar

Читайте на SMART-LAB:
Акции или облигации: сравниваем бумаги от одного эмитента
Игорь Галактионов У одного и того же эмитента могут быть как акции, так и облигации. Рассказываем, в каких ситуациях лучше выбрать тот или...
Ожидать ли притока иностранного капитала в российский ИТ-сектор?
Как пишет издание EU Reporter, несмотря на обсуждаемый в ЕС новый 21-й пакет антироссийских санкций, несколько глобальных инвестфондов планируют...
Фото
XAU/USD: нисходящий импульс набирает силу на фоне сильных данных США
Золото после непродолжительной консолидации вновь оказалось под давлением продавцов и обновило локальные минимумы. В течение рассматриваемого...
Фото
МТС. Отчет МСФО Q1 26г. Прибыль и капекс растут, а что с дивидендами?
Вышли финансовые результаты по МСФО за Q1 2026г. от компании МТС: 👉Выручка — 201,3 млрд руб. (+14,7% г/г) 👉Себестоимость (услуг, товаров...

теги блога Eugene Bright

....все тэги



UPDONW
Новый дизайн