[修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG
2024-09-29 10:06:40
问题:Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG
适用版本:Delphi 10.1.2 & 10.2.1
修正后效果:
修正代码:
请将 FMX.Edit.Style.pas 复制到自己的工程目录下,再修改如下代码: (10.2.2 已修正此问题)
procedure TStyledEdit.IMEStateUpdated;
var
CombinedText: string;
begin
CombinedText := FTextService.CombinedText;
FTextLayout.Text := CombinedText;
SetCaretPosition(GetOriginCaretPosition);
Model.SetTextWithoutValidation(CombinedText);
if FPrompt <> nil then
FPrompt.Visible := CombinedText.IsEmpty;
{+++>}{$IF Defined(IOS) or Defined(ANDROID)} // 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)
if Model.SelLength > then
begin
Model.DisableNotify;
try
Model.SelLength := ;
finally
Model.EnableNotify;
end;
UpdateSelectionPointPositions;
end;
{+++>}{$ENDIF} // 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)
LinkObserversValueModified(Self.Observers);
DoChangeTracking;
DoTyping;
end;
请将 FMX.Memo.Style.pas 复制到自己的工程目录下,再修改如下代码:(10.2.2 未已修正此问题)
procedure TStyledMemo.IMEStateUpdated; ...略... SelectionChanged := FSelected or (FSelStart <> LCaret) or (FSelEnd <> LCaret);
CaretPosition := LCaret;
{+++>}{$IF Defined(IOS) or Defined(ANDROID)} // 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17)
FSelStart := LCaret;
FSelected := False;
FSelEnd := FSelStart;
UpdateSelectionInModel;
{+++>}{$ENDIF} // 加入此行, 修正中文输入后会取消原选取文字的 BUG by Aone (2017.11.17) if SelectionChanged then
UpdateSelectionPointPositions;
if TextChanged then
LinkObserversValueModified(Self.Observers);
end;
end;
最新文章
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
- 弄一个ajax笔记方便查询-$.ajax()
- 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框
- 在opencv3中的机器学习算法
- Linux SUID SGID 讲解
- ios添加方法快捷方式
- vc读写注册表
- 【转】使用unity3d需要注意到细节
- JS中的内存泄漏
- jaxb异常 Class has two properties of the same name username
- (1)认识javascript
- 不用EF框架,完成完美实体映射,且便于维护!(AutoMapper,petapoco)
- 使用正则表达式和数组形式获取get方法传入的值
- html高度塌陷以及定位的理解
- Python编码和Unicode
- 5月16 JSON的一些知识点及AJAX的应用
- [LeetCode] 116&;117. Populating Next Right Pointers in Each Node I&;II_Medium tag: BFS(Dont know why leetcode tag it as DFS...)
- 查看Windows日志
- SAO Utils – SAO风格启动菜单
- wampserver的安装和使用
热门文章
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配
- linux 获取shell内置命令帮助信息 help xx
- Windows2003系统取消关机提示的方法
- c# 托管和非托管的介绍
- 使用WebViewJavascriptBridge与UIWebView交互
- [UI] 精美UI界面欣赏[8]
- 企业级NFS网络文件共享服务_【all】
- java开发初识
- javascript unshift()和shift()
- Springboot 设置session超时