Español
Foro

Dynamische Liste de Objekten=

 

Nico
Madysa
Yo mich veces en él intenta, el Sistema a überlisten en Klassenobjekte dynamisch aufzulisten. Mein Gedanke esta war, que un einziges Objeto quasi como Lesekopf verwendet se. Wird una neues Objeto producido, así seine Adresse en un bereich aufgelistet. Will una continuación darauf zugreifen, así el Adresse el Lesekopfobjekt zugewiesen y luego puede el deseado Operationen ausgeführt voluntad. Leider funktioniert el Ganze no tan wirklich. Sombrero alguien (IF?) una Concepto, cómo el Concepto weiterführen kann?
KompilierenMarcaSeparación
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: Dynamische Objektliste
Hochgeladen:03.07.2008
Ladeanzahl83
Descargar
 
Nico Madysa
03.07.2008  
 



Yo vermute hier liegt lediglich el problema antes, dass Usted Speicher en uno Función reservierst welcher después de Verlassen el Función freigegeben wurde. Usted merkst Usted zwar global el Adresse, pero no el Inhalt.
 
03.07.2008  
 



Apéndice: Reserviere doch Speicher Yo lo en el scrollarea.inc tue - por long m=globalAlloc(gPtr,_size) y kopiere el Klasseninhalt hay hinein. (Dadurch schliesst Usted DIM de, also no automatische Speicherfreigabe después de Verlassen el Función.)

Für Objekteigenschaften debería el trabajo, como se el con el Métodos verhält es vlt. en una otro Blatt.
 
03.07.2008  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

655 Views

Untitledvor 0 min.
Ragnar Rehbein08.03.2013
Nico Madysa05.04.2011

Themeninformationen

Dieses Thema ha 2 subscriber:

iF (2x)
Nico Madysa (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie