怎样让Tedit光标左、右移一个字符(会者不难)? (8分)

  • 主题发起人 主题发起人 bravercaohao
  • 开始时间 开始时间
B

bravercaohao

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样让Tedit光标左、右移一个字符?(用代码实现)
 
模拟左右键 还有空格健
 
如Tedit 中有4个字符,,怎样在代码中实现当光标在第3个字符时自动移动到第4个字符
 
例如!
Sendmessage(handle,WM_KEYDOWN,VK_RIGHT,0);
 
请问上面语句是什么意思,放在哪个事件中?谢谢!
 
先说你的事件是什么
也就是说:你是什么操作后,光标跑到第 3 个字符
 
editonchange事件中 执行
if (pos('0',(sender as tedit).text)=1) and (length((sender as tedit).text)>1) then
if pos('.',(sender as tedit).text)<>2 then
begin
(sender as tedit).text:=copy((sender as tedit).Text,2,length((sender as tedit).Text)-1);
end;
如第一字符输入0,第二字符输入9
光标自动移动到第一字符前,我要将它移到最后一个字符后.
 
不好意思
我做了个实验
Sendmessage(handle,WM_KEYDOWN,VK_RIGHT,0);
消息确实发到了,可是TEdit去失去了焦点,看不到光标在闪烁~
 
哪怎样处理?
 
试试 SelStart
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.SelStart=2 then
Edit1.SelStart:=0
end;
 
SelStart:=SelStart+1;//右移
SelStart:=SelStart-1;//左移
SelLenth:=?;//选择
 
呵呵~ 借鉴楼上兄弟的思路
右移
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
begin
n:=Edit1.SelStart;
edit1.SetFocus;
Edit1.SelStart:=n+1; //n+1 右移 //n-1左移
end;


 
后退
顶部