Maintenant pour les moments ou le programmateur ne connait pas le type d'un paramètre (je ne dirais pas une variable), ça arrive dans la mesure ou on prévoit un outil (fonction, DLL etc..) qui a un nombre de paramètre définis et qui lance la même routine derrière.
Or actuellement il n'est pas possible d'écrire une procédure avec des paramètres dont le type n'est pas défini, ou pourrait changer.
En revanche les type numériques sont automatiquement convertis dans le type demandé, ce qui est pratique, mais pas rigoureux.
Il faudrait pouvoir surcharger les définitions de procédure pour que TypeOf prenne une utilité plus importante !
J'ai essayé de faire un exemple ci-dessus, mais je suis pas un pro de la macro ( PAPIPP)
Sachant que pour des raisons de taille et d'efficacité de code, il vaudrait mieux utiliser CompilerSelect que Select
Code : Tout sélectionner
Macro Affiche(param)
Select TypeOf(param)
Case #PB_String
Affiche_STR(PeekS(@param))
Case #PB_Quad
Affiche_Num(PeekQ(@param))
Case #PB_Long
Affiche_Num(PeekL(@param))
Case #PB_Double
Affiche_flottant(PeekD(@param))
Case #PB_Float
Affiche_flottant(PeekF(@param))
EndSelect
EndMacro
Procedure Affiche_STR(str.s)
MessageRequester("titre", str)
EndProcedure
Procedure Affiche_Num(num.q)
MessageRequester("titre", Str(num))
EndProcedure
Procedure Affiche_flottant(flottant.d)
MessageRequester("titre", StrD(flottant, 4))
EndProcedure
var_str.s = "5831"
Affiche(var_str)
var_num.l = 466
Affiche(var_num)
var_flottant.f = 48.633
Affiche(var_flottant)