uniGUI之UniPopupMenu和右鍵菜單(27)


0]MainModule的BrowserOptions.boDisableMouseRightClick設置為Trure;

 1]控件的OnCellContextClick的事件

 

procedure TMainForm.UniDBGrid1CellContextClick(Column: TUniDBGridColumn; X,  Y: Integer);
begin
UniPopupMenu1.Popup(X, Y, UniDBGrid1);//彈出 右鍵菜單,綁定UniDBGrid1
end;

2]再寫菜單事件

procedure TMainForm.N1Click(Sender: TObject);
begin
   UniDBGrid1.DataSource.DataSet.Delete;
end

 

uniGUI開發的項目在運行時能否禁用鼠標右鍵菜單呢?答案是肯定的,因為uniGUI提供了一系列的配置屬性讓你可以根據需要個性化設置,如此將UniMainModule的BrowserOptions屬性的boDisableMouseRightClick設置為true就可以禁用右鍵菜單,特別簡單。但是如此設置后整個頁面上的所有控件都看不見右鍵菜單了,如何只禁用某個控件的右鍵菜單呢?比如不做全局設置,而是僅僅讓UniDBGrid和UniStringGrid控件內不能右鍵彈出菜單,代碼如下:

procedure TMainForm.UniFormCreate(Sender: TObject);
var
  IDs: string;
begin
  IDs := UniDBGrid1.JSId + ',' + UniStringGrid1.JSId;
  UniSession.AddJS('document.oncontextmenu = document.body.oncontextmenu = '+
                   '  function (e) { var s=true; e.path.forEach(function(el){'+
                   '    if(el.id!="" && "'+ IDs +'".includes(el.id)){s=false}'+
                   '  });'+
                   'return s}');
end;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM