Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#1

Delphi-Tage 2012 Demo(s)

  Alt 20. Sep 2012, 22:53
Ich hab mal versucht was für den Variablen-Scope der anonymen Methoden zusammenzubasteln.

Bei jedem Button-Klick wird ein Edit + Timer + eigene Instanz der anonymen Methode erstellt
und man kann dann recht einfach erkennen, daß jede Instanz der anonymen Methoden eine eigene "Instanz" dieser Variablen besitzt.



Nur nochmal aus Interesse (für XE3 32-Bit):
10,6 9,7 MB = Debug-Build
2,2 MB = Release-Buld
1,7 MB = Release-Buld + RTTI deaktiviert

[edit]
Ups, ich hatte ausversehn mit Debug-DCUs kompiliert, aber das hatte sich natürlich nur auf den Debug-Build ausgewirkt.

Und ich hab noch einen weiteren Button reingemacht, welcher eine globale Instanz einer anonymen Methode nutzt.

[add]
Bitte nicht wundern, daß es mal kurz knallt, wenn man das Edit der globalen Instanz vor den anderen Edits löscht, welche diese globale Instanz nutzen ... hab jetzt nicht noch versucht das wegzumachen. (es knallt nur mal kurz und sonst passiert nichts Schlimmes )
[add2]
Es könnte da nicht schaden, wenn man den globalen Instanzzeiger auf das "erste" Edit zurücksetzt, wenn dieses Edit gelöscht wird und man natürlich dann auf NIL prüft, wenn man darauf zugreit.
Zur Darstellung welches die globale Edit-Instanz ist wird dort von allen anderen (globalen) Edits drauf zugrgriffen. (siehe "*")
Angehängte Dateien
Dateityp: 7z AnonymousMethodVariabeScope.7z (508,2 KB, 4x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Sep 2012 um 00:18 Uhr)
  Mit Zitat antworten Zitat