- Код: Выделить всё
type TMyCommand=function(arg1:TMyArg):TMyCommandResult
...
function command1(arg1:TMyArg):TMyCommandResult;
...
function command2(arg1:TMyArg):TMyCommandResult;
...
function command100500(arg1:TMyArg):TMyCommandResult;
...
var
com:TMyCommand;
..
com:=GetNeededCommand;
res:=com(arg1:TMyArg)
Т.е. куча функций, та которую надо вызвать вычисляется в рантайме, и вызывается через переменную процедурного типа.
Зачем при объявлении 100500 функций надо писать полную декларацию? Потом приспичивает добавить например arg2 и приходится 100500 раз копипастить.
какнибудь так было бы гораздо логичней:
- Код: Выделить всё
...
command1 TMyCommand;
begin
...
end;
...
command2 TMyCommand;
begin
...
end;
...
т.е. при декларации использовать уже определенный процедурный тип. все изменения можно производить централизовано.
Есть мнения за или против?