線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:986
推到 Plurk!
推到 Facebook!

如何刪除游標後所有的字元

答題得分者是:timhuang
wang000f
一般會員


發表:16
回覆:28
積分:8
註冊:2003-10-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-31 15:22:23 IP:211.72.xxx.xxx 未訂閱
我想模擬終端機上的一個功能: 按Enter後清除所在游標位置以後之字元,並跳下一個,我目前只想到下面的作法,但我無法求知目前游標所在的位置,不知各位前輩有沒有更好的方法呢? procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin //模擬按Enter鍵, 焦點後移 if Key = #13 then begin (ActiveControl as TEdit).Text:= copy((ActiveControl as TEdit).Text,1, ?? ); end; key := #0; Perform(WM_NextDlgCtl, 0, 0); end;
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-31 16:17:31 IP:203.95.xxx.xxx 未訂閱
hi, 使用 SelStart 即可取得現有的游標位置.    
   (ActiveControl as TEdit).Text:= copy((ActiveControl as TEdit).Text,1, (ActiveControl as TEdit).SelStart );
發表人 - timhuang 於 2003/10/31 16:19:27
wang000f
一般會員


發表:16
回覆:28
積分:8
註冊:2003-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-31 17:02:43 IP:211.72.xxx.xxx 未訂閱
真的非常感謝您,問題解決了!!! 但不知我這樣的寫法是否是正統的寫法呢? 新手發問請見諒!!!    
引言: hi, 使用 SelStart 即可取得現有的游標位置.
   (ActiveControl as TEdit).Text:= 
      copy((ActiveControl as TEdit).Text,1, (ActiveControl as TEdit).SelStart );
發表人 - timhuang 於 2003/10/31 16:19:27
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-31 17:08:47 IP:203.95.xxx.xxx 未訂閱
其實沒有什麼正不正統的寫法, 只要能解決問題, 就是好的寫法!! 有一個要注意的地方, 就是因為你是使用 form preview 的 keypress event, 所以有可能不是在 edit 元件上按下 enter, 若是這樣的話, 你可能要多判斷一下產生該 event 的元件是不是 edit 元件, 語法如下:    
if ActiveControl is TEdit then
begin
  xxx
end;
系統時間:2024-08-31 22:53:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!