问题: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;

最新文章

  1. Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
  2. 弄一个ajax笔记方便查询-$.ajax()
  3. 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框
  4. 在opencv3中的机器学习算法
  5. Linux SUID SGID 讲解
  6. ios添加方法快捷方式
  7. vc读写注册表
  8. 【转】使用unity3d需要注意到细节
  9. JS中的内存泄漏
  10. jaxb异常 Class has two properties of the same name username
  11. (1)认识javascript
  12. 不用EF框架,完成完美实体映射,且便于维护!(AutoMapper,petapoco)
  13. 使用正则表达式和数组形式获取get方法传入的值
  14. html高度塌陷以及定位的理解
  15. Python编码和Unicode
  16. 5月16 JSON的一些知识点及AJAX的应用
  17. [LeetCode] 116&amp;117. Populating Next Right Pointers in Each Node I&amp;II_Medium tag: BFS(Dont know why leetcode tag it as DFS...)
  18. 查看Windows日志
  19. SAO Utils – SAO风格启动菜单
  20. wampserver的安装和使用

热门文章

  1. android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配
  2. linux 获取shell内置命令帮助信息 help xx
  3. Windows2003系统取消关机提示的方法
  4. c# 托管和非托管的介绍
  5. 使用WebViewJavascriptBridge与UIWebView交互
  6. [UI] 精美UI界面欣赏[8]
  7. 企业级NFS网络文件共享服务_【all】
  8. java开发初识
  9. javascript unshift()和shift()
  10. Springboot 设置session超时