Показать сообщение отдельно
Старый 25.09.2010, 16:48   #9
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Помогите с Type

Сообщение от volgeras Посмотреть сообщение
Не,в массиве не поместится информации столько же сколько так. Я в массив только ссылку на сам сделаю, а надо еще координаты, номера и еще что-то.
Чё за фигня?

С экземпляром объекта мы работаем через указатель (ссылку) на него, поэтому - имея указатель в массиве, мы имеем доступ ко всем полям.

Вот массив объектов:
Type TElem
	Field x%,y%
	Field width%,height%
	Field r%, g%,b%
End Type

Global colCount% = 8, rowCount% = 8

Dim mas.TElem(colCount, rowCount)
И доступ
Я написал примерчик, чтоб удостовериться, что оно работает в блице. Итог: оно работает



Type TElem
Field x%,y%
Field width%,height%
Field r%, g%,b%
End Type

Global colCount% = 8, rowCount% = 8

Dim mas.TElem(colCount, rowCount)

Global screenWidth% = 800
Global screenHeight% = 600

Graphics(screenWidth, screenHeight, 16, 2)
SetBuffer (BackBuffer ())

fnCreateElems(screenWidth, screenHeight)

While(Not(KeyHit(1)))
fnDrawElems()
Flip()
Cls()
Wend

End



Function fnCreateElems(width%, height%)
Local cube.TElem
Local w%,h%
For c%=0 To colCount-1
For r%=0 To rowCount-1
cube = New TElem
w = Rand(10,30)
h = Rand(10,30)
cube\x = Rand(0, width-w)
cube\y = Rand(0, height-h)
cube\width = w
cube\height = h
cube\r = Rand(0,255)
cube\g = Rand(0,255)
cube\b = Rand(0,255)
mas(c, r) = cube
Next
Next
End Function

Function fnDrawElems()
For c%=0 To colCount-1
For r%=0 To rowCount-1
Color(mas(c, r)\r, mas(c, r)\g, mas(c, r)\b)
Rect (mas(c, r)\x, mas(c, r)\y, mas(c, r)\width, mas(c, r)\height)
Next
Next
End Function

(Offline)
 
Ответить с цитированием