[fpc-pascal] function param and TVarRec

Xiangrong Fang xrfang at gmail.com
Tue Sep 24 09:34:58 CEST 2013


Thanks,  this works, sort of.  But does not meet my needs, I will pass in
either an int value or an object, but Variant is not compatible with
TObject.

Alternatively,  this also does NOT work:  array [0..1] of const; no matter
it is a type definition or used as function parameter.

This is a trivial problem, I can just go with array of const, I am just
curious if pascal can do this, because it will make the function definition
more strict and my code cleaner.

Regards,
Xiangrong



2013/9/24 Michael Van Canneyt <michael at freepascal.org>

>
>
> On Tue, 24 Sep 2013, Xiangrong Fang wrote:
>
>  Hi There,
>>
>> If you declare this:
>>
>> procedure proc(param: array of const);
>>
>> Then you can pass any type of varaible to param, however, only in an
>> array, such as proc([1, 2]);
>>
>> Is it possible to achieve the effect of the code below (which is wrong):
>>
>> procedure proc(p1: const; p2: const);
>>
>> So that: 1) p1 and p2 is translated by the compiler to TVarRec inside the
>> function; 2) I do not need to pass an array to the function, in another
>> word, the number of params
>> for the procedure is *fixed*, but the *type* of each param is not.
>>
>
> Use variants:
>
> Procedure Proc (Var A,B : variant);
>
> Michael.
>
> ______________________________**_________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.**org<fpc-pascal at lists.freepascal.org>
> http://lists.freepascal.org/**mailman/listinfo/fpc-pascal<http://lists.freepascal.org/mailman/listinfo/fpc-pascal>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20130924/cbfbf3da/attachment.html>


More information about the fpc-pascal mailing list