kbrobot.ru, Во-первых, зачем вообще нужен GetCell? В моём скрипте он используется только один раз, только в основной таблице и только для того, чтобы определить "настоящую" айдишку кликнутой строки, поскольку её порядковый номер в таблице может меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.
Во-вторых, у Вас не определены ни i, ни j, ни id, ни value, ни на кой Вам вообще нужен GetCell. В-третьих, результат вызова GetCell присваивается одной и той же переменной. откуда здесь вообще "жор памяти"? Кто кого сожрал?
Владимир написал: вообще нужен GetCell? В моём скрипте он используется только один раз, только в основной таблице и только для того, чтобы определить "настоящую" айдишку кликнутой строки, поскольку её порядковый номер в таблице может меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.Во-вторых, у Вас не определены ни i, ни j, ни id, ни value, ни на кой Вам вообще нужен GetCell. В-третьих, результат вызова GetCell присваивается одной и той же переменной. откуда здесь вообще "жор памяти"? Кто кого сожрал?
Спасибо за ответ. Когда я комментирую ГетСел то тут же жор пропадает. В квике в скриптах он показывает постоянный рост памяти.
Я с помощью этой функции нахожу код бумаги в таблице. И в соседнюю ячейку ставлю нужное мне значение.
Владимир написал: меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.
Все эти параметры определяются выше
function Window:InsertValue(id,value) value=tostring(value) if value==nil then return end rows,columns=GetTableSize(self.hID) i=1 j=1
while (i <= columns) do j=1 while (j <= rows) do x=GetCell(self.hID, j, i) if x~=nil then if x["image"]==id then SetCell(self.hID, j+1, i,value) end end
Владимир написал: меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.
Все эти параметры определяются выше
function Window:InsertValue(id,value) value=tostring(value) if value==nil then return end rows,columns=GetTableSize(self.hID) i=1 j=1
while (i <= columns) do j=1 while (j <= rows) do x=GetCell(self.hID, j, i) if x~=nil then if x["image"]==id then SetCell(self.hID, j+1, i,value) end end
j=j+1 end i=i+1 end
end
Зачем Вы обходите встю таблицу по столбцам и строкам. Вы разве не знаете в каком столбце у вас id? ---------------------- Если у вас инструменты не гуляют произвольно по строкам таблицы, то создайте для них table[seccode] в которой запишите номера строк. В итоге Вы просто будете выбирать из этой table номер строки инструмента по его seccode.
Владимир написал: меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.
Все эти параметры определяются выше
function Window:InsertValue(id,value) value=tostring(value) if value==nil then return end rows,columns=GetTableSize(self.hID) i=1 j=1
while (i <= columns) do j=1 while (j <= rows) do x=GetCell(self.hID, j, i) if x~=nil then if x["image"]==id then SetCell(self.hID, j+1, i,value) end end
j=j+1 end i=i+1 end
end
Зачем Вы обходите встю таблицу по столбцам и строкам. Вы разве не знаете в каком столбце у вас id? ---------------------- Если у вас инструменты не гуляют произвольно по строкам таблицы, то создайте для них table[seccode] в которой запишите номера строк. В итоге Вы просто будете выбирать из этой table номер строки инструмента по его seccode.
Владимир написал: меняться - например, при выполненной сортировке по какому-либо столбцу, или при изменении видимого количества строк. Скрипт прорисовывает таблицу сам и прекрасно знает, что и в какой ячейке у него лежит.
Все эти параметры определяются выше
function Window:InsertValue(id,value) value=tostring(value) if value==nil then return end rows,columns=GetTableSize(self.hID) i=1 j=1
while (i <= columns) do j=1 while (j <= rows) do x=GetCell(self.hID, j, i) if x~=nil then if x["image"]==id then SetCell(self.hID, j+1, i,value) end end
j=j+1 end i=i+1 end
end
Зачем Вы обходите встю таблицу по столбцам и строкам. Вы разве не знаете в каком столбце у вас id? ---------------------- Если у вас инструменты не гуляют произвольно по строкам таблицы, то создайте для них table[seccode] в которой запишите номера строк. В итоге Вы просто будете выбирать из этой table номер строки инструмента по его seccode.
А по другому эту проблему никак не решить?
я не использую такие таблицы в скриптах, поэтому лень писать тест. Если выложите работающий скрипт с Вашим вариантом поиска ячейки я скажу как исправить, либо соглашусь с Вами , что жрет.
kbrobot.ru, Господи, заведите невидимый нулевой столбец и запихните туда код бумаги в таблице. Именно так я и сделал, именно этот код и считывает тот самый единственный GetCell с моём скрипте.