Показать сообщение отдельно
Старый 13.01.2010, 03:42   #9
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,371
Написано 2,477 полезных сообщений
(для 6,865 пользователей)
Ответ: хедер для блица

Ясно, вроде понял, что требуется.
Тип в Blitz3D создаётся одновременно с листом (списком).

Структура B3D Type в BlitzMax:
Type TBBType
	Field _list:TList
	Field _link:TLink

	Method Add(t:TList)
		_list=t
		_link=_list.AddLast(self)
	End Method

	Method InsertBefore(t:TBBType)
		_link.Remove
		_link=_list.InsertBeforeLink(self,t._link)
	End Method

	Method InsertAfter(t:TBBType)
		_link.Remove
		_link=_list.InsertAfterLink(self,t._link)
	End Method

	Method Remove()
		_list.remove self
	End Method

EndType

Function DeleteLast(t:TBBType)
	if t TBBType(t._list.Last()).Remove()
EndFunction

Function DeleteFirst(t:TBBType)
	if t TBBType(t._list.First()).Remove()
EndFunction

Function DeleteEach(t:TBBType)
	if t t._list.Clear()
EndFunction

Function HandleToObject:Object(obj:Object)
	Return obj
EndFunction

Function HandleFromObject(obj:Object)
	Local h=HandleToObject(obj)
	Return h
EndFunction
Из исходника видно, что тип в B3D состоит из ссылки на обьект(TLink)
и листа (TList). При создании нового экземпляра нужного нам типа он сразу заносится в лист предназначеный для данного типа.
Дополнительные поля (Field) добавляем используя наследование.


Ссылки на обьекты хрянятся в листе.
У обьектов есть лист, который хранит ссылки на обьекты-поля.
Дык всётаки на какой язык нужно перебросить код?
На фортран чтоли? Я не понимаю.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием