Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TObejtList, werden nur Pointer hinzugefügt? (https://www.delphipraxis.net/204322-tobejtlist-werden-nur-pointer-hinzugefuegt.html)

hoika 19. Mai 2020 11:51

AW: TObejtList, werden nur Pointer hinzugefügt?
 
Hallo,

Zitat:

Ist also völlig ok, dass das Objekt immer gleich heißt und dann werden sie von der Tobjectlist.Free gelöscht?
Die Objekte werden gelöscht, wenn ObjectList.OwnsObject auf True ist (das müsste der Defaultwert sein).

Zitat:

Delphi ist echt komisch.
Komisch ist das damit in jeder Programmiersprache, die keine GarbageCollection hat.

himitsu 19. Mai 2020 12:39

AW: TObejtList, werden nur Pointer hinzugefügt?
 
Auch mit GarbageCollector wäre es immer die gleiche Referenz, wenn man immer wieder das selbe Objekte verwendet.

Im NextGen (Android/iOS) verhalten sich Objekte jetzt schon wie Interfaces (und ein Free wird böswillig ignioriert)
und im neuen 10.4 soll sich dann auch nochmal alles TOTAL ändern.

Zitat:

Einheitliches Speichermodell für alle Plattformen
https://community.idera.com/develope...udio-10-4-beta
https://community.idera.com/develope...d-code-insight
https://blog.marcocantu.com/blog/202...d-records.html
...



Und ja, Objekt-Referenzen und Interfaces sind "nur" Zeiger.

Es gibt aber eine Ausname: TList<TMyRecord>
wobei im alten TList + PMyRecord natürlich auch nur Zeiger sind.

kagi3624 19. Mai 2020 14:05

AW: TObejtList, werden nur Pointer hinzugefügt?
 
Zitat:

Zitat von DasWolf (Beitrag 1464864)
Naja sagen wir mal, Du möchtest 1000 Objekte der Liste hinzufügen. Dann willst Du doch sicherlich nicht 1000 Variablen definieren, oder?

Jaaa, das nicht aber alle diese Objekte werden für denselben Namen initialisiert und das verursacht eine Kernschmelze in meinem Kopf, wenn ich darüber anfange nachzudenken.

Neutral General 19. Mai 2020 14:16

AW: TObejtList, werden nur Pointer hinzugefügt?
 
Stells dir so vor: Variablen sind wie Kisten mit Aufschrift.
Du kannst in diese beschrifteten Kisten Sachen rein tun.
In deinem Fall ist es ungefähr so: Du erstellst ein Objekt, tust es in die Kiste mit der Aufschrift "StatusInfo" und dann nimmst du das Objekt aus der Kiste und fügst es der Liste hinzu.
Dann erstellst du ein neues Objekt. Tust das wieder in die Kiste und dann von der Kiste in die Liste. Und so weiter.
Die "StatusInfo" Kiste ist nur ein Behälter den du benutzt, weil es angenehmer ist und damit du die Sachen die du erstellst nicht verlierst sondern weißt, dass sie in der Kiste mit der Aufschrift "StatusInfo" sind.

Die Analogie ist nicht zu 100% wasserdicht, aber es zeigt, dass Variablen und das was drin ist 2 verschiedene Sachen sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Seite 2 von 2     12   

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