English
Forum

Dynamic list objects =

 

Nico
Madysa
I Have me time therein attempts, the system To überlisten circa Klassenobjekte dynamic aufzulisten. my thought thereby was, that one einziges Objekt quasi as Lesekopf is used. becomes one new Objekt created, so becomes its address in a area aufgelistet. wants one then hereon grab, so becomes The address the Lesekopfobjekt allocated and then can The desired Operationen carryed out go. unfortunately functions the whole not yet so really. has someone (iF?) a idea, How one The idea weiterführen can?
CompileMarkSeparation
Class TPoint = x& , y&

proc TPoint.TPoint

    parameters ppx& , ppy&
    .x& = ppx&
    .y& = ppy&

endproc

declare Point# , Stack#
neuen Punkt in die Liste eintragen

proc NewPoint

    parameters px& , py&
    Hier wird der Punkt als Klasse ganz gewohnt erzeugt.
    Point# = New(TPoint,px&,py&)
    Hier ist der Trick: Damit der Punkt nicht verloren geht, wird seine
    Adresse in einer internen Liste (Stack#) gespeichert. Die Liste ist
    dynamisch, daher können theoretisch unendlich viele Punkte erzeugt werden.
    Dim Stack# , SizeOf(Stack#) + 4
    Long Stack# , (SizeOf(Stack#) - 4) = Point#

endproc

Bei allen folgenden Prozeduren wird zuerst die Adresse des gewünschten
Punktes auf das als Lesekopf dienende Objekt übertragen. Aus ihm können
dann alle gewünschten Informationen ausgelesen werden.

proc SetPointX

    parameters nr% , px&
    Point# = Long(Stack#,nr% * 4)
    Point#.x& = px&

endproc

proc SetPointY

    parameters nr% , py&
    Point# = Long(Stack#,nr% * 4)
    Point#.y& = py&

endproc

proc GetPointX

    parameters nr%
    Point# = Long(Stack#,nr% * 4)
    return Point#.x&

endproc

proc GetPointY

    parameters nr%
    Point# = Long(Stack#,nr% * 4)
    return Point#.y&

endproc

proc Draw

    parameters nr%
    Point# = Long(Stack#,nr% * 4)
    SetPixel Point#.x& , Point#.y& , 0

endproc

Auch hier nimmt das Lesekopfobjekt die Adresse des gewünschten Punktes an.
Dieser wird dispost und dann aus der Liste entfernt. Das Lesekopfobjekt wird
anschließend weiter verwendet.

proc DelPoint

    parameters nr%
    Point# = Long(Stack#,nr% * 4)
    Dispose Point#
    Char Stack# , (nr% * 4) = Char$(Stack#,(nr% * 4) + 4,SizeOf(Stack#) - (nr% * 4) - 4)
    Dim Stack# , SizeOf(Stack#) - 4

endproc

Hier werden der Reihe nach alle Punkte dispost und danach auch die Liste selbst.

proc ClearStack

    whileloop 0 , SizeOf(Stack#) , 4

        Point# = Long(Stack#,&loop)
        Dispose Point#

    EndWhile

    Dispose Stack#

endproc

Hauptprogramm
cls

whileloop 20,40

    NewPoint &loop,20

EndWhile

whileloop 0,20

    Draw &loop

EndWhile

ClearStack
waitinput
end

3 kB
Kurzbeschreibung: dynamic Objektliste
Hochgeladen:07/03/08
Downloadcounter83
Download
 
Nico Madysa
07/03/08  
 



I suspect here lying solely the trouble to, that You memory in a function reservierst which to leave the function released watts. You merkst you of course global The address, but not whom Content.
 
07/03/08  
 



Nachtrag: Reserviere still memory How I it in the scrollarea.inc do - by long m=globalAlloc(gPtr,_size) and copy whom Klasseninhalt there into. (therefore close You DIM from, means no automatic Speicherfreigabe to leave the function.)

for Objekteigenschaften ought to the functions, How itself with the whom modes behave standing vlt. on one others leaf.
 
07/03/08  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

658 Views

Untitledvor 0 min.
Ragnar Rehbein03/08/13
Nico Madysa04/05/11

Themeninformationen

this Topic has 2 subscriber:

iF (2x)
Nico Madysa (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie