Salut.
Ton bout de code ce serait plutôt ça :
Sub calc_hexa (in_hexa As Byte) As Char
Dim out_hexa As Char = "?" ' if in_hexa not valid hex value, then return "?"
If in_hexa >= 0 And in_hexa <= 15 Then
out_hexa = "0123456789ABCDEF".CharAt(in_hexa) ' retourne le caractère qui se trouve à la position in_hexa dans la chaine
End If
Return out_hexa
End Sub
Moi je ferais plutôt ça :
Sub calc_hexa (in_hexa As Byte) As Char
If in_hexa < 0 Or in_hexa > 15 Then return "?" ' if in_hexa not valid hex value, then return "?"
return "0123456789ABCDEF".CharAt(in_hexa) ' retourne le caractère qui se trouve à la position in_hexa dans la chaine
End Sub
Ou alors, encore plus court :
Sub calc_hexa (in_hexa As Byte) As Char
return IIf(in_hexa < 0 Or in_hexa > 15, "?", "0123456789ABCDEF".CharAt(in_hexa))
End Sub
Pour les classes, oui, c'est un bon moyen de déporter du code de la page vers un autre fichier (et donc alléger le code).
Il y a des limitations effectivement.
Les composants du layout ne sont accessibles par la classe que si le layout est chargé par la classe ou la référence vers le composant passé en paramètre à l'initialisation de la classe.
Idem les événements des ces composants ne seront pas disponibles dans la page si le layout est chargé par la classe (mais on peut les rediriger vers la page)
Choses que je ne sais pas :
Est-ce qu'on peut initialiser une classe dans Main, je ne pense pas, à mon avis ça doit se faire dans une page ou l'initialiser dans le service Starter
Pour les widgets que j'ai jamais utilisé.