Przerabiam pewną funkcję i napotkałem problem, którego nie potrafię obejść
Mam globalną zmienną typu record
temp_list = record
idsys,idskl : integer;
nazwa : string;
wartosc : real;
Otóż wcześniej miałem globalną zmienną lista_sum:array[0..100] of temp_list;
oraz dwie funkcje
function _GetValue2(i:integer):real;
var k:integer;
begin
Result:=0;
for k:=0 to 100 do
if lista_sum[k].idskl=i then
begin
Result:= lista_sum[k].wartosc;
Break;
end;
end;
function _GetFunction2(nr:integer; par:integer=0):real;
var k:integer;
begin
Result:=0;
for k:=0 to 100 do
if lista_sum[k].idsys=par then begin
Result:= lista_sum[k].wartosc;
Break;
end;
end;
end;
wcześniej te dwie funkcje były podstawiane jako parametry do kolejnej funkcji
function Analyze(s:string; v:TGetValue; fc:TGetFunction):real;
val:= Analyze(MmDM.SkladnikTDefinicja.AsString,_GetValue2,_GetFunction2); <- tutaj error Local procedure/function '_GetValue2' assigned to procedure variable
i to zawsze działało
i teraz przeniosłem lista_sum oraz te dwie funkcje jako lokalne i kompilator już zgłasza błąd na linii wywołania Analize
Do się to zrobić w ten sposób?