fmx的memo設定了readonly := true,有沒有辦法禁止長按選中復制?
uj5u.com熱心網友回復:
Memo的Enable屬性設為False,外部一樣可以寫進去。uj5u.com熱心網友回復:
memo的CopyToClipboard;不是虛方法,也沒有OnCopyToClipboard;之類的事件,只有兩種辦法。第一,修改Memo的源代碼
第二,簡單粗暴在你要不需要它拷貝的時候加上
TPlatformServices.Current.SupportsPlatformService先獲取剪切板備份下來
TPlatformServices.Current.RemovePlatformService(IFMXClipboardService);
讓系統不支持剪切板就行了。
缺點是其他的控制元件也不能復制了。
需要可以復制的話TPlatformServices.Current.AddPlatformService();把剛才備份的加回來
uj5u.com熱心網友回復:
1、TMemo 設定ReadOnly:=True; 這是不能通過鍵盤錄入字符。并非屏蔽復制功能。2、TMemo 右鍵默認系統的快捷選單,其中就有復制、拷貝等等專案。
3、屏蔽TMemo的右鍵快捷選單,可以通過視窗中加入一個TPopupMenu,不對TPopupMenu進行設定,即讓它無TMenuItem選單專案。再讓TMemo的PopupMenu指定為該PopupMenu1。這樣,運行時你的Tmemo的右鍵,就屏蔽了。
uj5u.com熱心網友回復:
CanFocus設定為False試一下。完全禁止編輯的話可以用Label。uj5u.com熱心網友回復:
如果需屏蔽按鍵復制,可以這樣procedure Tfrmx.memoKeyPress(Sender: TObject; var Key: Char);
begin
Key:=Char(0);
end;
uj5u.com熱心網友回復:
此法可以控制快捷鍵。
uj5u.com熱心網友回復:
Fmx的Memo沒有KeyPress事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55070.html
標籤:VCL組件開發及應用
