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

EDIT內的游標控制

尚未結案
bjt
一般會員


發表:3
回覆:4
積分:1
註冊:2011-03-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-03 16:42:02 IP:120.108.xxx.xxx 訂閱
小弟最近在寫BACKSPACE 功能
EX: ABC
如果游標在AB|C B和C中間 按下BACKSPACE自然是消去B
大大們有甚麼好建議的指令呢!?
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-03 17:39:25 IP:59.120.xxx.xxx 未訂閱
直接按下鍵盤上的"Backspace ←"不就好了嗎...


===================引 用 bjt 文 章===================
小弟最近在寫BACKSPACE 功能
EX: ABC
如果游標在AB|C B和C中間 按下BACKSPACE自然是消去B
大大們有甚麼好建議的指令呢!?
bjt
一般會員


發表:3
回覆:4
積分:1
註冊:2011-03-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-03-03 17:43:46 IP:120.108.xxx.xxx 訂閱
 沒啦 我是用觸控螢幕 然後創一個 BUTTON
SO...要自己寫倒退鍵功能
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-03-03 18:38:45 IP:59.120.xxx.xxx 未訂閱
請搜尋keyboard events~
===================引 用 bjt 文 章===================
沒啦 我是用觸控螢幕 然後創一個 BUTTON
SO...要自己寫倒退鍵功能
Victor4022
中階會員


發表:0
回覆:76
積分:90
註冊:2011-02-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-03-03 22:53:59 IP:122.126.xxx.xxx 訂閱
不確定這是不是您要的,以下是參考Delphi 7 TEdit裡面的"SelStart" property

[code delphi]
function TCustomEdit.GetSelStart: Integer;
begin
SendMessage(Handle, EM_GETSEL, Longint(@Result), 0);
end;
[/code]

然後Result值就是目前該Edit的游標所在位置,
您可以在自己的Button click event再補上其他backspace的刪掉字元的動作

bjt
一般會員


發表:3
回覆:4
積分:1
註冊:2011-03-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-03-04 16:41:53 IP:120.108.xxx.xxx 訂閱

===================引 用 Victor4022 文 章===================
不確定這是不是您要的,以下是參考Delphi 7 TEdit裡面的"SelStart" property

[code delphi]
function TCustomEdit.GetSelStart: Integer;
begin
SendMessage(Handle, EM_GETSEL, Longint(@Result), 0);
end;
[/code]

然後Result值就是目前該Edit的游標所在位置,
您可以在自己的Button click event再補上其他backspace的刪掉字元的動作


就是這種@@
我先請問一個問題Longint(@Result) 這個得到的值是甚麼樣子的?

編輯記錄
bjt 重新編輯於 2011-03-04 01:44:59, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-03-04 17:26:49 IP:60.248.xxx.xxx 未訂閱
Hi

樓上前輩回應的差不多是你的答案,只差在寫出程式碼,
貼上我試的程式碼片段,同時回答你兩個問題

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
result:Integer;
begin
SendMessage(Edit1.Handle, EM_GETSEL, Longint(@Result),0);
Edit2.Text:=IntToStr(Result);
SendMessage(Edit1.Handle, wm_char, vk_back, 0);
end;
[/code]



===================引 用 bjt 文 章===================

然後Result值就是目前該Edit的游標所在位置,
您可以在自己的Button click event再補上其他backspace的刪掉字元的動作


就是這種@@
我先請問一個問題Longint(@Result) 這個得到的值是甚麼樣子的?

bjt
一般會員


發表:3
回覆:4
積分:1
註冊:2011-03-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-03-04 17:37:21 IP:120.108.xxx.xxx 訂閱
感謝回應!我要研究一下,謝謝 
===================引 用 pedro 文 章===================
Hi

樓上前輩回應的差不多是你的答案,只差在寫出程式碼,
貼上我試的程式碼片段,同時回答你兩個問題

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
result:Integer;
begin
SendMessage(Edit1.Handle, EM_GETSEL, Longint(@Result),0);
Edit2.Text:=IntToStr(Result);
SendMessage(Edit1.Handle, wm_char, vk_back, 0);
end;
[/code]



===================引 用 bjt 文 章===================

然後Result值就是目前該Edit的游標所在位置,
您可以在自己的Button click event再補上其他backspace的刪掉字元的動作


就是這種@@
我先請問一個問題Longint(@Result) 這個得到的值是甚麼樣子的?

系統時間:2024-11-23 11:54:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!