全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1150
推到 Plurk!
推到 Facebook!

請問如何讓TEdit無法[複製][貼上]?

尚未結案
nicolas
一般會員


發表:39
回覆:40
積分:15
註冊:2004-05-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-26 18:04:32 IP:61.219.xxx.xxx 未訂閱
請問如何讓TEdit無法[複製][貼上]? 也就是[ctrl]+[X]、[ctrl]+[C]、[ctrl]+、[
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-26 20:06:18 IP:211.76.xxx.xxx 未訂閱
nicolas 您好:    一個簡單的方法是令 Edit->Enabled = false;。 但是還是能夠利用程式碼改變其值,只是字型會變成灰色的。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-26 21:38:25 IP:202.39.xxx.xxx 未訂閱
參考這篇討論: http://groups.google.com/groups?hl=zh-TW&lr=&ie=UTF-8&th=48a97f78c730cdfa&rnum=70 當中 Serdar Guven 寫了一個 TEdit 元件的後代, 可以試試。    -- 向 KTop 的弟兄們致敬! 
RogerHer
一般會員


發表:11
回覆:39
積分:10
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-26 23:36:14 IP:211.76.xxx.xxx 未訂閱
這些熱鍵沒記錯的話應是會觸發 WM_COPY、WM_PASTE 及 WM_CUT ,所以讓這些熱鍵失效的一個方法就是乎略掉這些訊息---    
var
  OldWndProc : Pointer;   // 儲存原本的視窗處理函式位址
       :
implementation    {$R *.dfm}
function MyWindowProc( Handle : HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM ) : LRESULT; stdcall;
begin
  if (Msg = WM_COPY) or (Msg = WM_PASTE) or (Msg = WM_CUT) then
     Msg := WM_NULL;      (* 呼叫原本的視窗處理函式 *)
  Result := CallWindowProc( OldWndProc, Handle, Msg, WParam, lParam );
end;    procedure TForm1.FormCreate(Sender: TObject);
begin
  Integer(OldWndProc) := SetWindowLong( Edit1.Handle, GWL_WNDPROC, integer(@MyWindowProc) );
end;    
系統時間:2024-05-02 23:19:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!