En fait, je cherche à faire un traitement en fonction de la valeur du "RESULT" de ma fonction (Result : Olevariant)
le problème c'est que quand je fais if (Result >=0), j'obtiens : "Opération de variant incorrecte"
qqn sait pourquoi?
merci
Version imprimable
En fait, je cherche à faire un traitement en fonction de la valeur du "RESULT" de ma fonction (Result : Olevariant)
le problème c'est que quand je fais if (Result >=0), j'obtiens : "Opération de variant incorrecte"
qqn sait pourquoi?
merci
J'ai fait un petit test et si mon variant contient un entier, il ne lève pas d'erreur chez moi lors de ce if.
Pourrais tu simplement, avant ton if, ajouter la ligne ci-dessous et me dire ce qu'il t'affiche ?
Je me demande si tu as bien un Integer dedans :)Code:ShowMessage(VarTypeAsText(VarType(Result)));
Bonjour,
Le problème avec les variants c'est que les messages d'erreurs n'apparaîtront jamais à la concéption (puisque la variable peut prendre tous les types, il y a pas de raison d'incompatibilité ;) , mais les erreurs s'afficheront à l'execution. A noter qu'OleVariant introduit en plus un changement de type dans certains cas (voir F1).
J'ai fait le test avec une variable OleVariant dans laquelle je lui est affectée true, 10, 0.3...J'ai jamais eu d'erreur sur (variable>=0), bien que les résultats soient surprenants (comparer true à 0... :mrgreen: ).
Une idée quand même, avant de faire ta comparaison, stock ton "result" dans une variable temporaire de type integer.
Sinon post nous le code de ta fonction, on verra ce qu'on peux faire.
@+.