Difference between revisions of "Table.SelfReferenceCount"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:54, 7 February 2021
SelfReferenceCount (Счетчик ссылок на себя) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Атрибут позволяет получить или изменить количество ссылок на себя, хранящихся в объектах таблицы. Если не установить это число корректно, таблица не может быть удалена из памяти, так как количество ссылок на нее останется больше нуля, когда она будет удалена из ссылающейся последней переменной, и это приведет к утечке памяти. К сожалению, нет универсально рецепта для нахождения SelfReferenceCount, это всегда зависит от разработчика, иначе система смогла бы сама определить значение атрибута, и в его задании не было бы необходимости. См. также следующую статью.
Синтаксис
Table.SelfReferenceCount:<Количество ссылок на себя в объектах таблицы (INT)>
Возвращаемое значение
Возвращает число -- текущий счетчик ссылок на себя.
Примеры
... //Поиск ссылок в объектах, добавляемых для обновлении информации в таблице // внутри объектов хранится информация по текущей таблице, чтобы программа имела возможность вывести в нее обновленную информацию. СпБыло:=List.Create(); Чл:=0; For i:=1 To Т.Objects.Count() Do if (Т.Objects(i).Name="cRefresh")or(Т.Objects(i).Name="cTools") Then Зн:=Т.Objects(i).Value; //Зн -- значение объекта If СпБыло.Find(Зн)=0 Then //Если это список, возможно в нем есть наша таблица If TypeStr(Зн)="LIST" Then For i:=1 To Зн.Size() Do If TypeStr(Зн.Get(i))="TABLE" Then Чл:=Чл+1; break; EndIf; EndDo; ElseIf TypeStr(Зн)="TABLE" Then Чл:=Чл+1; EndIf; СпБыло.Add(Зн); EndIf; EndIf; EndDo; Т.SelfReferenceCount:=Чл; Т.Show();