AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie lange sind Instanzen der TRttiMember gülig?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie lange sind Instanzen der TRttiMember gülig?

Ein Thema von himitsu · begonnen am 23. Okt 2023 · letzter Beitrag vom 24. Okt 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

Wie lange sind Instanzen der TRttiMember gülig?

  Alt 23. Okt 2023, 19:53
Delphi-Version: 11 Alexandria
Moin Moin,

wenn ich mir die RTTI-Instanzen von Methoden, Property oder Feldern in einer Variable speichere,
also z.B. X := TRttiContext.Create.GetType(FOwner.ClassType).GetMethod(FName); ,
TRttiMethode, TRttiProperty oder TRttiField

Kann man dieses dann längere Zeit nutzen?
Also auch in anderen Methoden einer Klasse, wenn das im Contruictor erstellt/gesucht wurde.

Irgendwie scheint das wohl nicht zu funktionieren.
Kurz sofort danach, in anderer Methode, oder auch in 5 Minuten immernoch.


Ich dachte mir eingentlich, dass es doch schwachsinnig wäre, überall jedes Mal komplett neu suchen zu müssen, um diese Instanzen nutzen zu können.
(Invoke, bzw. GetValue und SetValue)
$2B or not $2B

Geändert von himitsu (23. Okt 2023 um 19:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie lange sind Instanzen der TRttiMember gülig?

  Alt 23. Okt 2023, 22:08
Standardmäßig sind die Instanzen nur solange gültig, wie der TRTTIContext im Scope ist. Allerdings kann man das auch gezielt mit TRTTIContext.KeepContext/DropContext steuern.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wie lange sind Instanzen der TRttiMember gülig?

  Alt 24. Okt 2023, 00:15
Jupp, auf die Idee war ich dann auch gekommen, den Context aufzuheben.

Man hätte ja denken können, dass die Member sich auch eine Referenz darauf behalten.



Hatte erst versucht Name und Typ zu speichern und überall neu zu suchen, aber das mit dem Kontext scheint zu klappen.


Schade, dass Emba für IDispatch und vor allem IDispatchEx scheinbar nichts mitbringt, um ein Delphi-Objekt automatisch mappen zu lassen.
Selbst bauen ist schon bissl aufwändig, besonders, da die Doku bei Microsoft diesbezüglich auch nicht so rosig aussieht.
$2B or not $2B

Geändert von himitsu (24. Okt 2023 um 00:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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