Français
Bugs et vermeintliche

Erledigt: Bugs chez DISPOSE + Objektvariablen?

 

Sebastian
Sprenger
si je un objet avec Dispose  freigebe et encore un objet dans dieselbe Variable erzeuge, bekomme je sous XProfan10Free et 11 den faute Zuweisung sur cet objet pas possible . si je zusätzlich trop ou bien statt dem Dispose  une Bereich avec 0 Bytes dimensioniere, TUTS! Pourquoi mais pas chez Dispose ?
KompilierenMarqueSéparation
class KLASSE=feld%
var objekt#=new(KLASSE)
dispose objekt#  das alleine funktioniert nicht
dim objekt#,0  nur damit funktionierts
objekt#=new(KLASSE)/pre>
Desweiteren hab Je l' impression, dass Objekte dans Arrays gar pas dispose d volonté... Zum comparaison: chez diesem Code sans Arrays venez oui cela scheinbar richtige raus:
KompilierenMarqueSéparation
class KLASSE=feld%
var objekt#=new(KLASSE)
objekt#.feld%=12345
dispose objekt#
print classof(objekt#)  ""
print sizeof(objekt#)  0
print objekt#.feld%  stürzt ab, naja, existiert immerhin nicht mehr
waitin
>
mais ici...!? (on beachte, dass aussi ici cela Neuzuweisungsproblem (s.o.) besteht, qui Befehl Faible  mais wohl aucun Arrays erwartet...)
KompilierenMarqueSéparation
class KLASSE=champ%
declare objekte#[0]
objekte#[0]=new(KLASSE)
objekte#[0].champ%=12345
dispose objekte#[0]
imprimer classof(objekte#[0])  toujours encore "KLASSE"
imprimer sizeof(objekte#[0])  toujours encore 2
imprimer objekte#[0].champ%  toujours encore 12345
waitinput
Salut, Sebastian
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
11.10.2008  
 




RGH
Salut,

einzelne Arrayelemente peut pas disposed volonté, mais seulement cela komplette Array:

Dispose Objekte#[]
Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.10.2008  
 




Sebastian
Sprenger
Einzelne pas? OK... mais aussi si je alle sur einmal dispose, passiert rien:
KompilierenMarqueSéparation
class KLASSE=feld%
declare objekte#[9]

whileloop 0,9

    objekte#[&loop]=new(KLASSE)
    objekte#[&loop].feld%=122*&loop

endwhile

dispose objekte#[]

whileloop 0,9

    objekte#[&loop].feld%=objekte#[&loop].feld%+&loop
    print classof(objekte#[&loop]),
    print sizeof(objekte#[&loop]),
    print objekte#[&loop].feld%

endwhile

waitinput
Wird qui grenier car là jamais wieder freigegeben?
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
11.10.2008  
 




Nico
Madysa
maintenant la hâte du wieder oublier qc, cela Array avec Faible trop dimensionieren.
Prinzipiell sollte es so marcher:
KompilierenMarqueSéparation
class KLASSE=feld%
declare objekte#[9]
Dim objekte#[] , KLASSE

whileloop 0,9

    objekte#[&loop]=new(KLASSE)
    objekte#[&loop].feld%=122*&loop

endwhile

dispose objekte#[]

whileloop 0,9

    objekte#[&loop].feld%=objekte#[&loop].feld%+&loop
    print classof(objekte#[&loop]),
    print sizeof(objekte#[&loop]),
    print objekte#[&loop].feld%

endwhile

waitinput

Am besten ist es, si du im selben Atemzuge, dans dem du Faible écris, aussi cela zugehörige Dispose à l' Ende klatschst,

PS: dans älteren Windows-Versionen konnte es réellement passer, dass qui Speicherplatz nichtfreigegebener Bereiche aussi blockiert bleibt. mais ab WIndows XP sollte au plus tard chez Fin qui dernier Bereich automatisch freigegeben volonté.
 
Nico Madysa
13.10.2008  
 




RGH
@Nico:
Sebastian pouvoir es déjà richtig: Beii einem objet- ou bien Struktur-Array peux on chaque individuel Element une super bzw. une Struktur zuweisen, sogar chaque Element une autre.

@Stefan:
tu as droite. Offensichtlich wirkt aussi ici DPSPOSE pas zuverlässig. je werde es mir la fois näher regarder ...

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.10.2008  
 




Nico
Madysa
Asche sur mien tête, nie gemacht "New" glatt übersehen...
 
Nico Madysa
13.10.2008  
 




RGH
Ok, j'ai dans qui Mittagspause encore la fois genauer nachgesehen:

1. cela d'abord genannte Problem (sans Bereisarray) betrifft seulement qui NEW-Funktion: vous funktioniert réellement pour einem Dispose chez Objekten pas. cela Dispose wurde mais korrekt durchgeführt et qui grenier freigegeben. Workaround: Possibilité 1: Statt Dispose dans diesem le cas "dim objet#,0" benutzen. un Dispose ist ensuite pas notwendig. Possibilité 2: qui super avec Faible zuweisen "Dim objet#, KLASSE".

2. cela Disposen de Bereichsarrays funktioniert réellement pas. Workaround: un Bereichsarray pas mehrfach verwenden. Beim Programmende wird qui grenier freigegeben.

Beide Bugs volonté dans qui prochain Version behoben.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.10.2008  
 




RGH
... et je mets encore une sur elle:

Ab qui prochain Version (möglicherweise 11.1) wird es aussi possible son, un einzelnes Element eines Bereichs-, Struktur- ou bien objet-Arrays trop disposen:

Dispose Objekte[5]
Diesem Element peux ensuite avec New wieder une super ou bien Struktur zugewiesen volonté.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.10.2008  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.362 Views

Untitledvor 0 min.
Sebastian Sprenger06.06.2013
Jörg Sellmeyer04.11.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie