forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   значение обьекта (http://forum.boolean.name/showthread.php?t=15359)

Dzirt 26.08.2011 23:18

значение обьекта
 
Вот суть траблы по пунктикам:
1.создаю обьект
Код:

Local Point:PointT = New PointT
2.Добавляю значение в х
Код:

Point.x =12
3.Добавляю обьект в список ранее созданый
Код:

points_List.AddLast Point
4.Создаю новый обьект с параметрами последнего из списка
Код:

Local Some:Object =  PointT (points_List.Last())
5.И вот тут начинаются проблемы....никак в документации немогу найти как правильно взять значение с только что созданного обьекта...при ниже приведеном коде выдает ошибку..
(???)
Код:

Var_What_Need = Some.x
(???)

NitE 26.08.2011 23:35

Ответ: значение обьекта
 
Graphics 800,600,0,60,0

Global POINT_LIST:TList = New TList

Type TPoint
Field X

Function Create:TPoint(X)
Point:TPoint = New TPoint
Point.X=X
ListAddLast(POINT_LIST,Point)
Return Point
EndFunction

EndType


Global P1:TPoint = TPoint.Create(10)
Global P2:TPoint = TPoint.Create(TPoint(POINT_LIST.Last()).X)

Repeat
Cls()

DrawText(P1.X,10,10)
DrawText(P2.X,10,20)
DrawText(POINT_LIST.Count(),10,30)

Flip()
Until KeyHit(KEY_ESCAPE)
End

Dzirt 27.08.2011 00:17

Ответ: значение обьекта
 
Спасибо, но никак не пойму почему я немогу взять значение из обьека при создании его своим способом....дебагер показыает что все параметры он унаследовал....но при попытке к ним обратится говорит что х из обьекта Some.x не существует (повторюсь что в дебагере они нормально отображаются..)
Как это принято при таких случаях писать - чтото голова не варит вообще :)

h1dd3n 27.08.2011 00:22

Ответ: значение обьекта
 
Дак приведи код полностью...

Dzirt 27.08.2011 00:40

Ответ: значение обьекта
 
как правильно взять значение Some.x и перенести его в Need_Var?
Код:

Graphics 800,600,0,60,0

Global points_List:TList = New TList

Type PointT

        Field x
       
                Function Create_New:PointT(x)
                                        Local Point:PointT = New PointT
                                        Point.x =x
                                        points_List.AddLast Point
                                       
                                        Local Some:Object =  PointT (points_List.Last())
                               
                                        'Если дебагнуть - то видно что Some все унаследовал, но как взять значения?
                                        DebugStop
                                       
                                        If Some<>Null
                                                'Need_Var = Some.x
                                        EndIf       
                                       
                EndFunction       
End Type

PointT.Create_New(12)

End


h1dd3n 27.08.2011 00:55

Ответ: значение обьекта
 
И откуда же у Object поле x?
Local Some:Object = PointT (points_List.Last())
Some должен быть типа PointT. Данная конструкция вообще работает только потому, что PointT автоматически наследуется от Object.
Код:


Graphics 800,600,0,60,0

Global points_List:TList = New TList

Type PointT
        Field x
End Type

Point1:PointT = New PointT
Point1.x = 5
points_List.AddLast(Point1)

Point2:PointT = PointT(points_List.Last())

While Not KeyHit(KEY_ESCAPE)
        Cls()
        DrawText(Point1.x, 10, 10)
        DrawText(Point2.x, 10, 25)
        Flip()
Wend

End

и кстати - PointT(points_List.Last()) вот это потом приведет к другим проблемам. Копируй объекты вручную.

Dzirt 27.08.2011 01:00

Ответ: значение обьекта
 
Точно....столько инфы перерыл, а ответ был так близок....
Спасибо, не знаю столько бы еще искал в чем причина =)


Часовой пояс GMT +4, время: 20:00.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot