anchor.diff:    Debug := not Debug;
     miDebugHexInfo.Checked := Debug;
     DisplayTopic(nil);
  +end;
  +
  +procedure TMainForm.miToolsFindByResourceID(Sender: TObject);
  +var
  +  ResourceIDString: string;
  +  ResourceID: word;
  +begin
  +  if not fpgInputQuery('Find Resource ID', 'Enter the resource ID to find', ResourceIDString) then
  +    exit;
  +  try
  +    ResourceID := StrToInt(ResourceIDString);
  +  except
  +    TfpgMessageDialog.Critical('Find Resource ID', 'Invalid resource ID entered');
  +    exit;
  +  end;
  +
  +  if not DisplayTopicByResourceID( ResourceID ) then
  +    TfpgMessageDialog.Critical('Find Resource ID', 'Resource ID not found');
  +end;
  +
  +procedure TMainForm.miToolsFindTopifByName(Sender: TObject);
  +var
  +  TopicNameString: string;
  +Begin
  +  if not fpgInputQuery( 'Find Topic By Name',
  +                       'Enter the topic name to search for',
  +                       TopicNameString ) then
  +    exit;
  +
  +  if not DisplayTopicByName( TopicNameString ) then
  +    if not DisplayTopicByGlobalName( TopicNameString ) then
  +      TfpgMessageDialog.Critical( 'Find Topic By Name', 'Topic name not found' );
   end;
   
   procedure TMainForm.miFileSaveTopicAsIPF(Sender: TObject);
  
positive.code:     procedure   miHelpUsingDocView(Sender: TObject);
      procedure   miDebugHeader(Sender: TObject);
      procedure   miDebugHex(Sender: TObject);
      procedure   miFileSaveTopicAsIPF(Sender: TObject);
      procedure   OnMRUMenuItemClick(Sender: TObject);
      procedure   btnShowIndex(Sender: TObject);
  
negative.code:   Result := nil;
  end;
  
  function TMainForm.DisplayTopicByResourceID(ID: word): boolean;
  var
    Topic: TTopic;
  begin
    Topic := FindTopicByResourceID( ID );
    if Topic = nil then
    begin
      Result := false;
      exit;
    end;
    result := true;
    DisplayTopic(Topic);
  end;
  
  function TMainForm.DisplayTopicByName(const TopicName: string): boolean;
  var
    Topic: TTopic;
  begin
    Topic := FindTopicByName(TopicName);
    if Topic = nil then
    begin
      Result := false;
      exit;
    end;
    result := true;
    DisplayTopic(Topic);
  end;
  
  function TMainForm.DisplayTopicByGlobalName(const TopicName: string): boolean;
  begin
    Result := False;
    // TODO: implement me
  end;
  
  procedure TMainForm.ViewSourceMIOnClick(Sender: TObject);
  begin
    ShowText('RichView Source Text', RichView.Text);
  End;
  
  
  // Add the current list of open files as
  // a Most Recently Used entry
  procedure TMainForm.AddCurrentToMRUFiles;
  