Funkcja jako parametr innej funkcji

0

Mam kilka funkcji:

function isDl(i:byte):boolean;  // sprawdza czy i to DUZA litera
begin  
  isDl:=false;

  if (char(i) in ['A'..'Z'] ) then
    isDl:=true;
end;                 

function isHEX(i:byte):boolean;  // sprawdza czy i to HEX
begin 
  isHEX:=false; 

  if (char(i) in ['0'..'9' ,  'A'..'F'] ) then
    isHEX:=true;
end;

Jezeli chce dla kazdej z funkcji sprawdzic jakis obszar tablicy to czy musze napisac osobna funkcje czy moge to zrobic np za pomoca takiej, a powyzsze beda parametrem ?

function obszar(adr,ile:integer;tab:array of byte):boolean;
var
  a:integer;
begin
  obszar:=true;

  for a:=0 to ile do 
    if not isDl(tab[adr+a]) then 
    begin 
      obszar:=false; 
      break; 
    end;
end;
0

Nie wiem jak to w delphi, ale np. w C mozna by zastosowac wskaznik do funkcji.

0
function isDl(i:byte):boolean;
begin  
  isDl:=(Chr(i) in ['A'..'Z']);
end;                

function isHEX(i:byte):boolean;
begin
  isHEX:=(Chr(i) in ['0'..'9','A'..'F']);
end;

type TisFUN=function (i:byte):boolean;
function obszar(adr,ile:integer;tab:array of byte;fun:TisFUN):boolean;
var a:integer;
begin
  obszar:=false;
  for a:=0 to ile do if not fun(tab[adr+a]) then exit;
  obszar:=true;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1