2016-01-23 54 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。這將允許您使用更多類型的參數來創建函數。