- Код: Выделить всё
TFunc = function: boolean;
- Код: Выделить всё
procedure AnyDo(b: boolean);
var
f: TFunc;
i: integer = 0;
function a1: boolean;
begin
i := 1;
end;
function a2: boolean;
begin
i := 2;
end;
begin
if b then f := TFunc( @a1 )
else f := TFunc( @a2 );
f();
form1.Caption:= IntToStr(i);
end;
i всегда равно нулю
- Код: Выделить всё
procedure AnyDo(b: boolean);
var
f: TFunc;
i: integer = 0;
function a1: boolean;
begin
i := 1;
end;
function a2: boolean;
begin
i := 2;
end;
begin
if b then f := @a1
else f := @a2;
f();
form1.Caption:= IntToStr(i);
end;
Ошибка
- Код: Выделить всё
procedure AnyDo(b: boolean);
var
f: TFunc;
i: integer = 0;
function a1: boolean;
begin
i := 1;
end;
function a2: boolean;
begin
i := 2;
end;
begin
if b then f := a1
else f := a2;
f();
form1.Caption:= IntToStr(i);
end;
Тоже ошибка.
Как правильно передать функцию в переменную?