Issue with TTMSFNCGanttProject.GetTaskByTaskId and others

The function TTMSFNCGanttProject.GetTaskByTaskId always returns nil. To fix this, either convert FindInSubTasks into a procedure or assign the result of every FindInSubTasks call to the Result variable.

function TTMSFNCGanttProject.GetTaskByTaskId(ATaskId: string): TTMSFNCGanttTask;
  function FindInSubtasks(ATasks: TTMSFNCGanttTasks): TTMSFNCGanttTask;
  var
    I: Integer;
  begin
    Result := nil;
    for I := 0 to ATasks.Count - 1 do
    begin
      if ATasks[I].TaskId = ATaskId then
      begin
        Result := ATasks[I];
        Exit;
      end;
      if ATasks[I].SubTasks.Count > 0 then
        Result := FindInSubtasks(ATasks[I].SubTasks);
    end;
  end;
begin
  Result := FindInSubtasks(Tasks);
end;

There are other functions like TTMSFNCGanttProject.GetTaskByTaskId, TTMSFNCGanttProject.GetTaskByTaskName, TTMSFNCGanttProject.DeleteTask, TTMSFNCGanttProject.DeleteTaskByTaskId or TTMSFNCGanttProject.DeleteTaskByTaskId which have the same issue.

Thank you for letting us know.
We will look into this as well.
A complete revision of the TMS FNC Gantt Chart is planned.
Just as this and the previous post, any other feedback might get added to the list of improvements as well.