Moin, mon,
ja ich kann SirThomberry da schon verstehen, sehe das aber etwas lockerer. Prinzipiell sind Variants einfach langsamer als die Ursprungsvariablen und nochmal langsamer als Pointerlösungen.
Das es die nicht unter D3 gibt ist für mich eigentlich nicht mehr relevant, denn meine Programme laufen schon unter D4 nicht mehr sauber durch den Compiler. Borland hat da inzwischen einfach sinnvoller Änderungen gemacht und die möchte ich nicht missen.
Wenn man mit
OLE arbeitet kommt man um die Variants, aufgrund der Microsoft-Implementierung, prinzioiell nich umhin. Deshalb hat sie auch Borland eingeführt. Da Pointer in VB nicht vorhanden sind und man oft mit globalen Variablen den Überblick verliert ist der Varianttyp hier willkommen.
In Delphi ist die Weitergabe von Pointern der schnellste Werg um auf Daten zuzugreifen. Aber der Pointer alleine reicht nicht. Man braucht noch eine zweite Variable um die Information zu liefern um was für einen Datentyp es sich handelt. Oft muß man dann wieder mit Case-Strukturen arbeiten um mit dem richtigen Typ dann weiterzuarbeiten, was auch nicht umbedingt elegant ist.
FAZIT: Wenn irgend möglich baue Deine Funktionen so, dass Sie wissen mit was Sie umgehen sollen und vermeide Variant. Wenn es aber einfach in der Problemstellung liegt, dass man nicht weiss um welchen Datentyp es sich handelt den man bearbeiten muß, dann sind Variants vertretbar.
Grüße /// Martin