[fpc-pascal]Minimum size of parameters
Aitor Santamaria Merino
aitor.sm at wanadoo.es
Thu Dec 6 17:42:37 CET 2001
Many thanks for the piece of advice.
Two more problems:
> On donderdag, december 6, 2001, at 04:47 , Aitor Santamaria Merino wrote:
>
>> If the answer to the previous was NO, then do you have another idea to
>> solve my initial problem, execute this:
>> RECORD
>> Pt: PointerToCertainProcedure;
>> Sz: SizeInBytesOfProcedureArgs;
>> Arg: PointerToARecordContainingArgs;
>> END;
>
This would be, then
RECORD
Pt: Procedure (args: array of const);
Arg: args;
END;
right?
Problem 1) This wouldn't be transparent for procedures/functions, and it
is my wish that it should be so.
Ok, I could wrap it...
> Pascal (Delphi-style pascal) has a generic solution for this. It's
> called an "array of const". You use it like this:
>
> ***
> procedure p(args: array of const);
> var
> i: longint;
> begin
> for i := low(args) to high(args) do
> case args[i].vtype of
> vtInteger:
> writeln(args[i].vInteger);
> ...
> end;
> end;
>
> begin
> p(["string",'c',1354]);
> end.
> ***
Problem 2) How would I fill into such structure? Could I do
Var A: args;
begin
a[1] := 'string'; {why "?}
a[2] := 'c';
a[3] := 1234;
end;
Problem 3) Which are the fields of a[i]? You seemed to mention vtype,
vInteger?
> I suppose this is all explained in the reference manual, though I'm not
> sure.
I coulnd't find it as a first glance... (I looked at the open arrays
section, although my compiler version is still rather outdated...
Aitor
More information about the fpc-pascal
mailing list