Implémentation d'opérations unaires

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Création d'une classe pour le type variant personnalisé


Pour que le type variant personnalisé puisse fonctionner avec les opérateurs unaires standard ( -, not), vous devez redéfinir la méthode UnaryOp. UnaryOp possède deux paramètres : la valeur de l'opérande et l'opérateur. Implémentez cette méthode pour effectuer l'opération et renvoyer le résultat en utilisant la même variable que celle qui contenait l'opérande.

Par exemple, la méthode UnaryOp suivante vient de TComplexVariantType, définie dans l'unité VarCmplx :

Object Pascal :

 procedure TComplexVariantType.UnaryOp(var Right: TVarData; const Operator: TVarOp);
 begin
   if Right.VType = VarType then
     case Operator of
       opNegate:
         TComplexVarData(Right).VComplex.DoNegate;
     else
       RaiseInvalidOp;
     end
   else
     RaiseInvalidOp;
 end;

Remarquez que pour l'opérateur logique not, qui n'a pas de sens pour des valeurs complexes, cette méthode appelle RaiseInvalidOp pour provoquer une erreur d'exécution.

Voir aussi