Bonjour,
Voici mon problème.
J'ai une méthode
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function MyClass.EncodeStr( const Trame: string; const TabChar: TCharDynArray; const TabStr: TStringDynArray ): string;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TStringDynArray = array of string; TCharDynArray = array of char;
Le problème est que l'appel
ne compile pas avec l'erreur "[Erreur] XXX.pas(YYY): Types incompatibles : 'Set' et 'TCharDynArray'".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MyAdditionalInfos:= EncodeStr( AdditionalInfos, ['^', '|', '='], ['^^', '^+', '^-'] );
Cette erreur peut-être résolue en modifiant le prototype de la fonction en spécifiant des tableaux ouverts plutôt que des tableaux dynamiques :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function MyClass.EncodeStr( const Trame: string; const TabChar: array of char; const TabStr: array of string): string;
Seulement cette solution ne me satisfait pas puisque cela m'interdit de passer alors des tableaux dynamiques (la compilation échoue avec l'erreur "[Erreur] U_DrvMere2.pas(415): Types incompatibles : 'Array' et 'dynamic array'").
N'y a-t-il pas une solution (fonction ?) permettant de convertir des tableaux "statiques" en dynamiques : le but est que le delphi m'accepte un constructeur de tableau ("['A', 'B']" par exemple, qui est donc à priori un tableau statique) comme argument d'une méthode dont le prototype accepte un tableau dynamique ? Cela m'éviterai d'avoir à déclarer une tableau dynamique, de l'affecter à la main indice par indice...
Merci d'avance pour votre aide.
Partager