anchor.diff:    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;
  
positive.code: 
  implementation
  
  uses Variants, UAutoScope, Dialogs;
  
  resourcestring
    sTotal = 'Total: %d';
  
negative.code:         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;
          FOnPreparePopupMenu(Self, LSelection, LPopup);
  