看似简单的问题,其实很难???

eryu 2002-12-14 02:38:26
这个问题就是:当鼠标移进Edit框里时,里面的文本被自动选中成高亮状态,移出Edit时又恢复正常,取消选中状态。
设置它的AutoSelect属性为True根本不行。
请举个例子。谢谢!
...全文
35 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
eryu 2002-12-14
  • 打赏
  • 举报
回复
谢谢各位。
我新建一应用程序,试了linzhisong(無聊) 朋友的后两种方法的组合,可以达到效果。

但是我本来的那个程序有点特殊,原因也一时无法讲清楚,致使我用这种方法在我那个程序里也不能达到完美的效果。
能不能判断当鼠标移出EDIT时,就让里面被选中的文本取消选择状态?

因为在我这个程序里不能用判断鼠标移到窗体上后的事件,(原因一时不好解释)。所以只有判断移出EDIT了,或者是,我这个edit是放在一个Groupbox里的,我试了判断当移到Groupbox里,但也不行。怎么办?
goodloop 2002-12-14
  • 打赏
  • 举报
回复
移出去就取消还是没实现,一定要有其他的东西把焦点拿走才行
goodloop 2002-12-14
  • 打赏
  • 举报
回复

我的和blucecat(一言稀音)
差不多
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if sender is TEdit then
begin
(sender as Tedit).SetFocus;
end
else if sender is Tbutton then
begin
(sender as Tbutton).SetFocus;
end
....//可以扩展到其他控件
end;
linzhisong 2002-12-14
  • 打赏
  • 举报
回复
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
edit1.SelLength:=0;
end;

這個就可以了.不過焦點還是在edit裡面
linzhisong 2002-12-14
  • 打赏
  • 举报
回复
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
edit1.SetFocus;
edit1.SelectAll;
end;

move裡面用這個
eryu 2002-12-14
  • 打赏
  • 举报
回复
我试了一下,当第一次移进去的时候可以选中里面的内容,但移出去时不能取消选中状态,且再次移进去时又不能选中了,请问怎么改啊?

能给出完整的吗?我实在不会。
wjlsmail 2002-12-14
  • 打赏
  • 举报
回复
Enter
Exit
中可以写吗 ?
linzhisong 2002-12-14
  • 打赏
  • 举报
回复
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
edit1.SelectAll;
end;

就可以了
blucecat 2002-12-14
  • 打赏
  • 举报
回复
procedure TForm1.Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (sender as tedit).Name='Edit2' then
self.Edit2.SetFocus
else
self.Edit1.SetFocus
end;

这是 一个测试,自己去改善吧
eryu 2002-12-14
  • 打赏
  • 举报
回复
真的这么难吗?没有高手吗?

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧