Comment passer des arguments de ma procédure à un appel de write
appelé à l'intérieur?Passer des arguments pour écrire dans une procédure
Quelque chose tout à fait comme ça:
procedure smth (args: alltypes);
begin
write(args);
end;
Comment passer des arguments de ma procédure à un appel de write
appelé à l'intérieur?Passer des arguments pour écrire dans une procédure
Quelque chose tout à fait comme ça:
procedure smth (args: alltypes);
begin
write(args);
end;
Si vous souhaitez utiliser votre fonction avec n'importe quel nombre/type d'argument de manière Write
, comme smth(3, 'aaa', 5.6)
- il est impossible que je sache. Cependant vous pouvez utiliser le type array of ...
pour l'argument de passer à la procédure n'importe quel nombre d'arguments.
Voici un exemple:
program wrt;
{$mode objfpc}{$H+}
uses
sysutils, variants;
procedure test1(args: array of Variant);
var
i: Integer;
begin
for i := Low(args) to High(args) do
Write(args[i]);
Writeln;
end;
procedure test2(fmt: string; args: array of const);
begin
Writeln(Format(fmt, args));
end;
begin
test1([1, 'aaa', 3.5, False]);
test2('%d %s %g, %s', [1, 'aaa', 3.5, BoolToStr(False, True)]);
end.
Par exemple:
procedure write(text : string);
begin
write(text);
end;
Mais si vous voulez override votre fonction. Vous devez lire ce sujet HERE. Cela vous permettra de faire fonctionner avec plus de type d'arguments.