anchor.diff:          Dec(LRow);
           LSelection := Selection;
           for i := 0 to High(LSelection.Selections) do
  -        begin
             if not LContains then
             begin
               with LSelection.Selections[i] do
                 LContains := (LCol >= Left) and (LRow >= Top) and (LCol <= Right) and (LRow <= Bottom);
               Break;
             end;
  -        end;
   
           if not LContains then
             Exit;
  
positive.code:   Result := FDrawGrid.Canvas;
  end;
  
  procedure TCustomVisualGrid.PreparePopupMenu(Sender: TObject;
    constref ASelection: TVisualGridSelection; out APopupMenu: TPopupMenu);
  
    function GetAccNo(constref ARow: Variant): Cardinal;
    begin
      if NOT TAccountComp.AccountTxtNumberToAccountNumber(ARow.Account, Result)
      then
        raise Exception.Create
          ('Internal Error: Unable to parse account number from table row');
    end;
  
     function GetAccNoWithCheckSum(constref ARow: Variant): String;
    begin
      Result := ARow.Account;
    end;
  
    function GetAccounts(AccountNumbers: TArray<Cardinal>): TArray<TAccount>;
    var
      acc: TAccount;
      safeBox: TPCSafeBox;
      keys: TOrderedAccountKeysList;
      LContainer: Generics.Collections.TList<TAccount>;
      i: Integer;
    begin
      LContainer := Generics.Collections.TList<TAccount>.Create();
      keys := TWallet.keys.AccountsKeyList;
      safeBox := TUserInterface.Node.Bank.safeBox;
      safeBox.StartThreadSafe;
      try
        LContainer.Clear;
        try
  
          // load selected user accounts
          for i := 0 to High(AccountNumbers) do
          begin
            acc := safeBox.Account(AccountNumbers[i]);
            if keys.IndexOfAccountKey(acc.accountInfo.accountKey) >= 0 then
            begin
              LContainer.Add(acc);
            end;
          end;
        finally
          safeBox.EndThreadSave;
        end;
        Result := LContainer.ToArray;
      finally
        LContainer.Free;
      end;
  
    end;
  
  var
    Item: TMenuItem;
    i: Integer;
    AccountNumbers: TArray<Cardinal>;
    AccountNumbersWithChecksum: TArray<String>;
    accounts: TArray<TAccount>;
  begin
  
    if Self.Parent.Caption = 'MY ACCOUNT PANEL' then
    begin
      AccountNumbers := TListTool<Variant, Cardinal>.Transform(Self.SelectedRows,
        GetAccNo);
      AccountNumbersWithChecksum := TListTool<Variant, String>.Transform(Self.SelectedRows,
        GetAccNoWithCheckSum);
      for i := 0 to High(AccountNumbers) do
      begin
       // ShowMessage(GetAccounts(AccountNumbers)[i].Account.ToString);
        ShowMessage(AccountNumbersWithChecksum[i]);
      end;
  
      APopupMenu := TPopupMenu.Create(Self);
      Item := TMenuItem.Create(APopupMenu);
      Item.Caption := 'Send PASC';
      // Item.OnClick := HandlePopupItem;
      APopupMenu.Items.Add(Item);
  
    end
    else
    begin
      APopupMenu := Nil;
    end;
  end;
  
  procedure TCustomVisualGrid.SetCells(ACol, ARow: Integer; AValue: Variant);
  begin
    TTableRowData(FDataTable.Rows[ARow]).vvalues[ACol] := AValue;
  
negative.code: begin
    if ColCount = 0 then
      Exit;
    case Button of
      mbRight:
        if (SelectionType <> stNone) and Assigned(FOnPreparePopupMenu) and
  