Existe-t-il un moyen dans Delphi de déclarer un tableau de chaînes tel que le suivant?
{'first','second','third'}
essaye ça
Const
Elements =3;
MyArray : array [1..Elements] of string = ('element 1','element 2','element 3');
Dans XE7, vous pouvez déclarer une constante de tableau dynamique comme ceci:
const
MyArray: TArray<String> = ['First','Second','Third'];
Vous pouvez utiliser des tableaux dynamiques et essayer ceci:
var
FMyArray: TArray<string>;
function MyArray: TArray<string>;
begin
if Length(FMyArray) = 0 then
FMyArray := TArray<string>.Create('One', 'Two', 'Three');
Result := FMyArray;
end;
Bien que cela effectue une initialisation au moment de l'exécution d'un tableau dynamique sur le tas, cela montre également que Delphi prend en charge un "pseudo-constructeur" sur des tableaux dynamiques qui permettent l'initialisation sur place. (REMARQUE: le code ci-dessus n'est pas adapté aux threads).
Maintenant, tout ce que vous devez faire pour connaître la longueur du tableau est d'utiliser la fonction standard Length () ou pour trouver la plage d'index autorisée, utilisez les fonctions standard Low () et High ().
Si vous utilisez une ancienne version de Delphi, remplacez TArray par votre propre type de chaîne de tableau dynamique tel que:
type
TStringArray = array of string;
Vous pouvez le faire de manière indirecte. Créez une fonction comme:
procedure assignStringArray(var rasVelden: ArrayOfString; const asVeldenIn: Array Of String);
var
iLengte, iT1: Integer;
begin
iLengte := Length(asVeldenIn);
SetLength(rasVelden, iLengte);
for iT1 := iLengte-1 downto 0 do
rasVelden[iT1] := asVeldenIn[iT1];
end;
et appelez cette fonction comme:
assignStringArray(asVelden, ['String1', 'String2', 'String3']);
où:
asVelden: ArrayOfString;