Die Frage ist vielmehr, ob der Fehler nicht schon in SN := SProp.Get_Value;
liegt, wo einer String-Typ-Variablen (SN) ein Ergebnis vom Typ OleVariant zugewiesen wird. Wieso meckert da der Compiler nicht?
Er würde da meckern, aber das merkt keiner, wegen dem leeren Try-Except.
Egal ob nun implizit oder explizit gecastet.
Der Code mit
var SN: Variant;
oder eben VarToStr oder Dergleichen.