Как передать аргументы из моей процедуры на вызов write
, вызванный внутри?Передача аргументов для записи в процедуре
Нечто подобное:
procedure smth (args: alltypes);
begin
write(args);
end;
Как передать аргументы из моей процедуры на вызов write
, вызванный внутри?Передача аргументов для записи в процедуре
Нечто подобное:
procedure smth (args: alltypes);
begin
write(args);
end;
Если вы хотите использовать свою функцию с любым количеством аргументов/типа аргумента в Write
способом, например smth(3, 'aaa', 5.6)
- это невозможно, поскольку я знаю. Однако вы можете использовать тип array of ...
для аргумента, чтобы передать процедуре любое количество аргументов.
Вот пример:
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.
Например:
procedure write(text : string);
begin
write(text);
end;
Но если вы хотите переопределение вашей функции. Вы должны прочитать эту тему HERE. Это позволит вам выполнять функцию с большим количеством аргументов.