Ответ 1
Это обычно одно и то же... кроме случаев, когда вы проверяете функцию...
function mfi: TObject;
begin
Result := nil;
end;
procedure TForm1.btn1Click(Sender: TObject);
type
TMyFunction = function: TObject of object;
var
f: TMyFunction;
begin
f := mfi;
if Assigned(f) then
begin
ShowMessage('yes'); // TRUE
end
else
begin
ShowMessage('no');
end;
if f <> nil then
begin
ShowMessage('yes');
end
else
begin
ShowMessage('no'); // FALSE
end;
end;
Со вторым синтаксисом он проверит результат функции, а не сама функция...