Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Delphi-Tage 2012 Demo(s) (https://www.delphipraxis.net/170520-delphi-tage-2012-demo-s.html)

himitsu 20. Sep 2012 22:53


Delphi-Tage 2012 Demo(s)
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :oops: )
[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 "*")

himitsu 23. Sep 2012 12:09

AW: Delphi-Tage 2012 Demo(s)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nochmal kurz etwas überarbeitet.
Projekt2 geht nun über die selbe Button-Klickfunktion und nutzt somit für lokalen und globalen Varianten die "gleiche" Variable,
damit man noch deutlicher sieht, daß jede "Instanz" seinen eigenen Satz an Variablen nutzt.
Unf über die nachfolgende i:Zuweisung sieht man, daß die Form-Methode solange diese Variablen-Instanz shared (mitbenutzt, wie sie im Skope der Methode liegen)

Man könnte Button-Click sogar in mehreren Thread parallel nutzen und selbet da ha jede Methode (in jedem Thread) seinen eigenen Satz an Variablen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz