1)и зачем же тебе TObject ? используй наследие
SuperStrict
Type TBase
field global_var%
method Base() abstract
End Type
Type TObj1 extends TBase
method Base()
global_var = 1
end method
End Type
Type TObj2 extends TBase
method Base()
global_var = 2
end method
End Type
Global List:TList = new TList
List.AddLast(new TObj1)
List.AddLast(new TObj2)
for local obj:TBase = eachin List
obj.Base()
debuglog obj.global_var
next
List.Clear()
List = null
2) узнать какого типа обьект нельзя
используй для хранения типа дополнительную переменную
и вообще научись программировать так чтобы не нужно было узнавать какого типа обьект
3) Strict, SuperStrict - режими придирания компилятора к коду
SuperStrict не позволит определить переменую без типа
или использовать неопределенную переменую
4)TLink - одиница в TList, часть связаного списка
хранит указатель на предыдущий обьект, следуйший обьект
и указатель на обьект который хранит
TList считай как кинопленка у которой концы склеены
каждый кадр - это TLink
а то что содержит кадр - это то что ты добавил