Delphi-Quellcode:
// geht so:
Procedure AddPersonV1(pname : String; Eigenschaften : Array Of Const);
// oder so
Procedure AddPersonV2(pname : String; Eigenschaften : Variant);
//
// Aufruf mit
AddPersonV1('Paul',['Foo','Bar','Bla']);
AddPersonV1('Paul',VarArrayOf(['Foo','Bar','Bla']));
AddPersonV1('Bernd',VarArrayOf(['Foo','Bar','Bla','Nochmehr','Huppsi']));
Bei 'Array of Const' musst Du in der Prozedur mit 'TVarRec(Eigenschaften[i]).VString' (irgendwie so) arbeiten.
Delphi-Quellcode:
Procedure AddPersonV1(pname : String; Eigenschaften : Array Of Const);
var
i : Integer;
begin
memo1.lines.add(pname);
for i:=0 to High(Eigenschaften) do
memo1.lines.add (TVarRec(Eigenschaften[i]).VString);
End;
Irgendwie so (aus dem Gedächtnis).
Edit: Achso, mit Werten...
Delphi-Quellcode:
Procedure AddPersonV1(pname : String; Eigenschaften,Werte : Array Of Const);
var
i : Integer;
begin
Assert(High(Eigenschaften) = High(Werte), 'Eigenschaften und Werte müssen gleich viel Elemente enthalten);
memo1.lines.add(pname);
for i:=0 to High(Eigenschaften) do
memo1.lines.add (Format('%s=%s', [TVarRec(Eigenschaften[i]).VString,TVarRec(Werte[i]).VString)]);
End;
Hoffe, das geht so ähnlich.