Re:Array of const - problem in Delphi 3
Hi Marek,
maybe this will help you:
procedure TellMe( Range : array of const );
var i: Integer;
begin
for i:=0 to High(Range) do with TVarRec(Range[i]) do begin
case VType of
vtInteger: WriteLn(VInteger);
vtBoolean: WriteLn(VBoolean);
vtExtended: WriteLn(VExtended^);
vtAnsiString: WriteLn(PString(@VAnsiString)^);
// and so on
else WriteLn('?');
end;
end;
end;
procedure PreSetRange( Range : array of const );
var
OldLength: Integer;
NewLength: Integer;
i: Integer;
NewRange: Array of TVarRec;
begin
OldLength:=High(Range)+1;
if OldLength>=6 then NewLength:=OldLength else NewLength:=6;
SetLength(NewRange, NewLength);
for i:=0 to OldLength-1 do NewRange[i]:=Range[i];
for i:=OldLength to NewLength-1 do
with TVarRec(NewRange[i]) do begin
VInteger:=MaxInt;
VType:=vtInteger;
end;
// now, do something with NewRange, like:
TellMe(NewRange);
end;
Bye,
Michael
Marek schrieb:
Quote
> I want to dynamically change the variable wi\hich is 'array of const' . I
> have no idea how.
> This example refers exactly to my problem:
> procedure PreSetRange( Range : array of const );
> begin
> while High( Range ) < 5 do begin
> // I always need at least 6 elements
> .... do something to increase number of elements ....
> ... set new element as Integer value = MaxInt .......
> end;
> SetRange( Range ) ;
> end;
> I do not have to use the same variable 'Range' , I would be happy if
> PreSetRange can
> create new open array variable , take existing elements from Range and add
> some
> new elements. I have tried couple constructions but Delphi 3 'does not like'
> them.
> I will appreciate any advice.
> Marek.