Delphi Tips 
-----------------------------

0030  D1   D2   D3   D4   D5   D6   D7   3.1   95   98    作成: 1999/02/08 osamu rev 1.1
   B1   B3   B4   B5   B6   B7   NT3   NT4   2K   XP  更新: 1999/02/08 osamu 編集
関数のパラメータを省略可能にしたい

R> 関数のパラメータを省略可能なものにしたいのですが、どうしたら良いのでしょうか。
R> また、パラメータの個数を動的に決められるものにするには、どうしたら良いのでしょうか。

Delphiで可変数パラメータを使うには、array of constを使うのが一般的だと思います。

function Test(Values: array of const): string;
var i:Integer;
begin
    Result:='';
    for i:=Low(Values) to High(Values) do
        with Value do
            case VType of
            vtInteger:
                Result:=Result+IntToStr(VInteger);
            vtChar:
                Result:=Result+VChar;
            vtString:
                Result:=Result+VString^;
            vtObject:
                if VObject is TComponent then
                    Result:=Result+(VObject as TComponent).Name;
            ...
            end;
end;

Test(['Testing ',123,' ',Self);

あってるかな?

ちなみに、C++Builder3/Delphi4 以降では、

    procedure AProcedure(a: Integer; b: Integer= 3);

のような形で省略可能なパラメータを定義できるそうです。
参照: [Delphi-ML:17729] [Delphi-ML:19255] <PASCAL>

[新規作成] [最新の情報に更新]

How To
Lounge
KeyWords


Tips
Delphi
Home
Osamu Takeuchi osamu@big.or.jp