Ich tippe auch mal darauf, das sich in einer der Eventhandler die vom marabu beschriebene laisser-faire Programmierung eingeschlichen hat.
Mit Variants zu arbeiten, ist, insbesondere bei Metadaten, ungemein praktisch. Aber man muss, wenn man die Variant-Welt verlässt, unbedingt Konvertierungsroutinen verwenden. Ich habe mir dafür eine ganze Reihe von Funktionen geschrieben, die Delphi nicht oder nur ungenügend implementiert hat:
Delphi-Quellcode:
Function VarToInt (aVariant : TVariant) : Integer;
Function VarToStr (aVariant : TVariant) : String;
Function VarToBool (aVariant : TVariant) : Boolean;
Function VarToDateTime (aVariant : TVariant) : DateTime;
Function VarToDouble (aVariant : TVariant) : Double;
...