Einzelnen Beitrag anzeigen

PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#1

Variant als Ergeb. einer Function

  Alt 21. Sep 2007, 14:33
Ich habe eine Function mit einem Ergebnis vom Type Variant.
Nun versuche ich, das Ergebnis zu initialisiern. Also etwa so:
Delphi-Quellcode:
Function MyFoo:Variant;
Begin
  result := Unassigned;
  :
Sporadisch (häufig) geht das, zur Laufzeit, schief, da angeblich eine unzulässige Typenumwandlung vorliegt.
Auch ClearVar(result), result := NULL usw. scheitern. Mein Workaround ist:
Delphi-Quellcode:
 
TVarData(result).VType := 0;
Das funktioniert (zumindst bis her). Die Ursache ist offenbar, dass im, ja noch nicht initialisierten, "result" das VType auf einem Wert steht, welcher jede folgende Initialisierung des Result unmöglich macht.
Ist das ein bekanntes Verhalten, oder mache ich da was falsch?
PMM
  Mit Zitat antworten Zitat