Der er ingen simpel måde. Du er nød til at lave en variant ud af dine const parametre ved at loope igennem dem.
Fandt denne i en nyhedsgruppe. Den viser ideen:
function MakeVariant (AValues : array of const) : Variant; var i : Integer; begin Result := VarArrayCreate ([Low (AValues), High (AValues)], varVariant); for i := Low (AValues) to High (AValues) do begin with AValues [i] do begin case VType of vtInteger: Result [i] := VInteger; vtBoolean: Result [i] := VBoolean; vtChar: Result [i] := VChar; vtExtended: Result [i] := VExtended^; vtString: Result [i] := VString^; vtPointer: Result [i] := Integer (VPointer); vtPChar: Result [i] := StrPas (VPChar); vtAnsiString: Result [i] := String (VAnsiString); vtCurrency: Result [i] := VCurrency^; vtVariant: Result [i] := VVariant^; else raise Exception.Create ('invalid data type') end; end; end; end;
Så kan du kalde bar(MakeVariant(parm1));
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.