2016-01-23 3 views

ответ

2

Если вы хотите использовать свою функцию с любым количеством аргументов/типа аргумента в 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. 
0

Например:

procedure write(text : string); 
begin 
    write(text); 
end; 

Но если вы хотите переопределение вашей функции. Вы должны прочитать эту тему HERE. Это позволит вам выполнять функцию с большим количеством аргументов.

 Смежные вопросы

  • Нет связанных вопросов^_^