Inno Setup Desmarque una tarea cuando se marca otra tarea

Estoy tratando de interceptar elWizardForm.TasksList.OnClickCheck evento para que pueda desmarcar una tarea cuando se selecciona otra tarea. Sé que normalmente se usarían botones de radio en esta situación, pero desmarcar automáticamente una tarea cuando se selecciona otra funciona mejor aquí debido al uso de múltiples tareas jerárquicas y al hecho de que si se usan botones de radio, siempre debe tener uno de los dos seleccionados cuando están en la parte superior del subárbol de tareas. El rediseño de la jerarquía de tareas no es factible para mantener la coherencia, ya que esto incluye dos tareas temporales que se eliminarán en una versión futura del instalador. He escrito lo siguiente para hacer esto:

var
  DefaultTasksClickCheck: TNotifyEvent;

{ Uncheck tasks based on what other tasks are selected }
procedure UpdateTasks();
var
  intIndex: Integer;
begin
  with WizardForm.TasksList do
    begin
      if IsTaskSelected('Task1') then
        begin
          intIndex := WizardForm.TasksList.Items.IndexOf('Task36 Description');
          CheckItem(intIndex, coUncheck);
        end;
      if IsTaskSelected('Task36') then
        begin
          intIndex := WizardForm.TasksList.Items.IndexOf('Task1 Description');
          CheckItem(intIndex, coUncheck);
        end;
    end;
end;

{ Update the task states if the task states change and restore the original event handler procedure }
procedure TasksClickCheck(Sender: TObject);
begin
  DefaultTasksClickCheck(Sender);
  UpdateTasks;
end;

procedure InitializeWizard();
begin
  { Store the original Tasks Page OnClickCheck event procedure and assign custom procedure }
  DefaultTasksClickCheck := WizardForm.TasksList.OnClickCheck;
  WizardForm.TasksList.OnClickCheck := @TasksClickCheck;
end;

Sin embargo, cuando ejecuto el código, obtengo un:

Fuera del rango de proceso

error, al hacer clic en cualquier casilla de verificación, conDefaultTasksClickCheck(Sender); resaltado como la línea ofensiva. Si comento esta línea, ya no obtengo el error, pero obviamente ya no restauro el controlador de eventos original y todavía no marca y desmarca las tareas correctamente, con la Tarea36 sin marcar cuando la Tarea1 está marcada. ¿Qué he hecho mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta